共用方式為


AudioBuffers.SetData 方法

定義

多載

SetData(Int32, IntPtr)

設定其中一個音訊緩衝區的資料緩衝區,而不更新緩衝區大小。

SetData(Int32, IntPtr, Int32)

設定其中一個音訊緩衝區的資料緩衝區。

SetData(Int32, IntPtr)

設定其中一個音訊緩衝區的資料緩衝區,而不更新緩衝區大小。

public void SetData (int index, IntPtr data);
member this.SetData : int * nativeint -> unit

參數

index
Int32

要存取之緩衝區的索引。

data
IntPtr

nativeint

要為指定之緩衝區設定之資料的指標。

備註

您可以使用這個方法來交換其中一個緩衝區,而不更新緩衝區的大小。

//
// Creating an AudioBuffers structure 
//
AudioBuffers SetupBuffers (int n = 2, int size = 4096)
{
    var buffers = new AudioBuffers (n);
    for (int i = 0; i < n; i++)
	buffers.SetData (i, MyBuffers [0][i], size);
    return buffers;
}

//
// Swap the buffers
//
void SwapBuffers (AudioBuffers buffers, int bufferGroup)
{
    for (int i = 0; i < buffers.Count; i++)
    	buffers.SetData (i, MyBuffers [bufferGroup][i]);
}

適用於

SetData(Int32, IntPtr, Int32)

設定其中一個音訊緩衝區的資料緩衝區。

public void SetData (int index, IntPtr data, int dataByteSize);
member this.SetData : int * nativeint * int -> unit

參數

index
Int32

要存取之緩衝區的索引。

data
IntPtr

nativeint

要為指定之緩衝區設定之資料的指標。

dataByteSize
Int32

緩衝區的大小。

備註

//
// Creating an AudioBuffers structure 
//
AudioBuffers SetupBuffers (int n = 2, int size = 4096)
{
    var buffers = new AudioBuffers (n);
    for (int i = 0; i < n; i++){
        var buffer = Marshal.AllocHGlobal (size);
	buffers.SetData (i, buffer, size);
    }
    return buffers;
}

void ReleaseBuffers (AudioBuffers buffers)
{
    for (int i = 0; i < buffers.Count; i++){
        var buf = buffers [i];
        Marshal.ReleaseHGlobal (buf.Data);                
    }
    buffers.Dispose ();
}

適用於