다음을 통해 공유


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 ();
}

적용 대상