다음을 통해 공유


AudioTrack.Write 메서드

정의

오버로드

Write(ByteBuffer, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

Write(Byte[], Int32, Int32)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

Write(Int16[], Int32, Int32)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

Write(ByteBuffer, Int32, WriteMode, Int64)

HW_AV_SYNC 트랙의 스트리밍 모드에서 재생을 위해 오디오 싱크에 오디오 데이터를 씁니다.

Write(Byte[], Int32, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

Write(Int16[], Int32, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

Write(Single[], Int32, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

Write(ByteBuffer, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;II)I", "GetWrite_Ljava_nio_ByteBuffer_IIHandler")]
public virtual int Write (Java.Nio.ByteBuffer audioData, int sizeInBytes, Android.Media.WriteMode writeMode);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;II)I", "GetWrite_Ljava_nio_ByteBuffer_IIHandler")>]
abstract member Write : Java.Nio.ByteBuffer * int * Android.Media.WriteMode -> int
override this.Write : Java.Nio.ByteBuffer * int * Android.Media.WriteMode -> int

매개 변수

audioData
ByteBuffer

에서 보고 audioData.position()한 위치에서 시작하여 쓸 데이터를 보유하는 버퍼입니다. <BR>반환 시 버퍼 위치(audioData.position())는 AudioTrack에 성공적으로 기록된 데이터의 양을 반영하도록 고급화됩니다.

sizeInBytes
Int32

쓸 바이트 수입니다. 요청된 바이트 수가 프레임 크기의 배수(채널 수에 곱한 바이트 단위의 샘플 크기)인 것은 권장되지만 적용되지는 않습니다. <BR>참고는 이 값과 다를 audioData.remaining()수 있지만 초과할 수는 없습니다.

writeMode
WriteMode

#WRITE_BLOCKING하나 , #WRITE_NON_BLOCKING. 정적 모드에는 영향을 주지 않습니다. <BR>을 사용하면 #WRITE_BLOCKING모든 데이터가 오디오 싱크에 기록될 때까지 쓰기가 차단됩니다. <BR>With #WRITE_NON_BLOCKING, 쓰기는 차단 없이 가능한 한 많은 오디오 데이터를 재생하기 위해 큐에 대기한 후 즉시 반환됩니다.

반환

0 또는 작성된 바이트의 양수 또는 다음 오류 코드 중 하나입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li>#ERROR<> li<>에서 오류가< 반환됩니다.>

특성

설명

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다. ByteBuffer의 audioData는 AudioTrack 생성자에 지정된 형식과 일치해야 합니다.

스트리밍 모드에서 차단 동작은 쓰기 모드에 따라 달라집니다. 쓰기 모드인 #WRITE_BLOCKING경우 모든 데이터가 재생을 위해 큐에 추가될 때까지 쓰기가 일반적으로 차단되며 전체 전송 횟수를 반환합니다. 그러나 쓰기 모드가 #WRITE_NON_BLOCKING있거나 항목에서 트랙이 중지되거나 일시 중지되거나 다른 스레드가 중지 또는 일시 중지를 호출하여 쓰기를 중단하거나 쓰기 중에 I/O 오류가 발생하면 쓰기가 짧은 전송 횟수를 반환할 수 있습니다.

정적 버퍼 모드에서는 오프셋 0부터 시작하는 버퍼에 데이터를 복사하고 쓰기 모드는 무시됩니다. 이 함수가 반환된 후 이 데이터의 실제 재생이 발생할 수 있습니다.

에 대한 android.media.AudioTrack.write(java.nio.ByteBuffer, int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Write(Byte[], Int32, Int32)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

[Android.Runtime.Register("write", "([BII)I", "GetWrite_arrayBIIHandler")]
public virtual int Write (byte[] audioData, int offsetInBytes, int sizeInBytes);
[<Android.Runtime.Register("write", "([BII)I", "GetWrite_arrayBIIHandler")>]
abstract member Write : byte[] * int * int -> int
override this.Write : byte[] * int * int -> int

매개 변수

audioData
Byte[]

재생할 데이터를 보유하는 배열입니다.

offsetInBytes
Int32

쓸 데이터가 시작되는 audioData에서 바이트로 표현된 오프셋입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

sizeInBytes
Int32

오프셋 뒤의 audioData에서 쓸 바이트 수입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

반환

0 또는 작성된 바이트의 양수 또는 다음 오류 코드 중 하나입니다. 바이트 수는 sizeInBytes를 초과하지 않는 프레임 크기의 배수(바이트)입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li><li>#ERROR<>에서 오류가< 반환됩니다.#write(byte[], int, int, int)writeMode#WRITE_BLOCKING>

특성

설명

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다. AudioTrack 생성자에 지정된 형식은 배열의 데이터에 해당해야 합니다 AudioFormat#ENCODING_PCM_8BIT . 형식은 사용할 AudioFormat#ENCODING_PCM_16BIT수 있지만 더 이상 사용되지 않습니다.

스트리밍 모드에서는 모든 데이터가 재생을 위해 큐에 추가될 때까지 쓰기가 일반적으로 차단되며 전체 전송 횟수를 반환합니다. 그러나 항목에서 트랙이 중지되거나 일시 중지되거나 다른 스레드가 중지 또는 일시 중지를 호출하여 쓰기를 중단하거나 쓰기 중에 I/O 오류가 발생하면 쓰기가 짧은 전송 횟수를 반환할 수 있습니다.

정적 버퍼 모드에서 오프셋 0부터 시작하여 버퍼에 데이터를 복사합니다. 이 함수가 반환된 후 이 데이터의 실제 재생이 발생할 수 있습니다.

에 대한 android.media.AudioTrack.write(byte[], int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Write(Int16[], Int32, Int32)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

[Android.Runtime.Register("write", "([SII)I", "GetWrite_arraySIIHandler")]
public virtual int Write (short[] audioData, int offsetInShorts, int sizeInShorts);
[<Android.Runtime.Register("write", "([SII)I", "GetWrite_arraySIIHandler")>]
abstract member Write : int16[] * int * int -> int
override this.Write : int16[] * int * int -> int

매개 변수

audioData
Int16[]

재생할 데이터를 보유하는 배열입니다.

offsetInShorts
Int32

재생할 데이터가 시작되는 audioData의 쇼츠로 표현된 오프셋입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

sizeInShorts
Int32

오프셋 뒤의 audioData에서 읽을 반바지의 수입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

반환

0 또는 작성된 양수의 반바지 또는 다음 오류 코드 중 하나입니다. 쇼츠 수는 sizeInShorts를 초과하지 않는 채널 수의 배수입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li><li>#ERROR<>에서 오류가< 반환됩니다.#write(short[], int, int, int)writeMode#WRITE_BLOCKING>

특성

설명

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다. AudioTrack 생성자에 지정된 형식은 배열의 데이터에 해당해야 합니다 AudioFormat#ENCODING_PCM_16BIT .

스트리밍 모드에서는 모든 데이터가 재생을 위해 큐에 추가될 때까지 쓰기가 일반적으로 차단되며 전체 전송 횟수를 반환합니다. 그러나 항목에서 트랙이 중지되거나 일시 중지되거나 다른 스레드가 중지 또는 일시 중지를 호출하여 쓰기를 중단하거나 쓰기 중에 I/O 오류가 발생하면 쓰기가 짧은 전송 횟수를 반환할 수 있습니다.

정적 버퍼 모드에서 오프셋 0부터 시작하여 버퍼에 데이터를 복사합니다. 이 함수가 반환된 후 이 데이터의 실제 재생이 발생할 수 있습니다.

에 대한 android.media.AudioTrack.write(short[], int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Write(ByteBuffer, Int32, WriteMode, Int64)

HW_AV_SYNC 트랙의 스트리밍 모드에서 재생을 위해 오디오 싱크에 오디오 데이터를 씁니다.

[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;IIJ)I", "GetWrite_Ljava_nio_ByteBuffer_IIJHandler", ApiSince=23)]
public virtual int Write (Java.Nio.ByteBuffer audioData, int sizeInBytes, Android.Media.WriteMode writeMode, long timestamp);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;IIJ)I", "GetWrite_Ljava_nio_ByteBuffer_IIJHandler", ApiSince=23)>]
abstract member Write : Java.Nio.ByteBuffer * int * Android.Media.WriteMode * int64 -> int
override this.Write : Java.Nio.ByteBuffer * int * Android.Media.WriteMode * int64 -> int

매개 변수

audioData
ByteBuffer

에서 보고 audioData.position()한 위치에서 시작하여 쓸 데이터를 보유하는 버퍼입니다. <BR>반환 시 버퍼 위치(audioData.position())는 AudioTrack에 성공적으로 기록된 데이터의 양을 반영하도록 고급화됩니다.

sizeInBytes
Int32

쓸 바이트 수입니다. 요청된 바이트 수가 프레임 크기의 배수(채널 수에 곱한 바이트 단위의 샘플 크기)인 것은 권장되지만 적용되지는 않습니다. <BR>참고는 이 값과 다를 audioData.remaining()수 있지만 초과할 수는 없습니다.

writeMode
WriteMode

#WRITE_BLOCKING하나 , #WRITE_NON_BLOCKING. <BR>을 사용하면 #WRITE_BLOCKING모든 데이터가 오디오 싱크에 기록될 때까지 쓰기가 차단됩니다. <BR>With #WRITE_NON_BLOCKING, 쓰기는 차단 없이 가능한 한 많은 오디오 데이터를 재생하기 위해 큐에 대기한 후 즉시 반환됩니다.

timestamp
Int64

제공된 audioData의 첫 번째 디코딩 가능한 오디오 프레임의 타임스탬프(나노초)입니다.

반환

0 또는 작성된 바이트의 양수 또는 다음 오류 코드 중 하나입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li>#ERROR<> li<>에서 오류가< 반환됩니다.>

특성

설명

HW_AV_SYNC 트랙의 스트리밍 모드에서 재생을 위해 오디오 싱크에 오디오 데이터를 씁니다. 차단 동작은 쓰기 모드에 따라 달라집니다.

에 대한 android.media.AudioTrack.write(java.nio.ByteBuffer, int, int, long)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Write(Byte[], Int32, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

[Android.Runtime.Register("write", "([BIII)I", "GetWrite_arrayBIIIHandler", ApiSince=23)]
public virtual int Write (byte[] audioData, int offsetInBytes, int sizeInBytes, Android.Media.WriteMode writeMode);
[<Android.Runtime.Register("write", "([BIII)I", "GetWrite_arrayBIIIHandler", ApiSince=23)>]
abstract member Write : byte[] * int * int * Android.Media.WriteMode -> int
override this.Write : byte[] * int * int * Android.Media.WriteMode -> int

매개 변수

audioData
Byte[]

재생할 데이터를 보유하는 배열입니다.

offsetInBytes
Int32

쓸 데이터가 시작되는 audioData에서 바이트로 표현된 오프셋입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

sizeInBytes
Int32

오프셋 뒤의 audioData에서 쓸 바이트 수입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

writeMode
WriteMode

#WRITE_BLOCKING하나 , #WRITE_NON_BLOCKING. 정적 모드에는 영향을 주지 않습니다. <br>With #WRITE_BLOCKING, 쓰기는 모든 데이터가 오디오 싱크에 기록될 때까지 차단됩니다. <br>With #WRITE_NON_BLOCKING, 쓰기는 차단 없이 가능한 한 많은 오디오 데이터를 재생하기 위해 큐에 대기한 후 즉시 반환됩니다.

반환

0 또는 작성된 바이트의 양수 또는 다음 오류 코드 중 하나입니다. 바이트 수는 sizeInBytes를 초과하지 않는 프레임 크기의 배수(바이트)입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li>#ERROR<> li<>에서 오류가< 반환됩니다.>

특성

설명

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다. AudioTrack 생성자에 지정된 형식은 배열의 데이터에 해당해야 합니다 AudioFormat#ENCODING_PCM_8BIT . 형식은 사용할 AudioFormat#ENCODING_PCM_16BIT수 있지만 더 이상 사용되지 않습니다.

스트리밍 모드에서 차단 동작은 쓰기 모드에 따라 달라집니다. 쓰기 모드인 #WRITE_BLOCKING경우 모든 데이터가 재생을 위해 큐에 추가될 때까지 쓰기가 일반적으로 차단되며 전체 전송 횟수를 반환합니다. 그러나 쓰기 모드가 #WRITE_NON_BLOCKING있거나 항목에서 트랙이 중지되거나 일시 중지되거나 다른 스레드가 중지 또는 일시 중지를 호출하여 쓰기를 중단하거나 쓰기 중에 I/O 오류가 발생하면 쓰기가 짧은 전송 횟수를 반환할 수 있습니다.

정적 버퍼 모드에서는 오프셋 0부터 시작하는 버퍼에 데이터를 복사하고 쓰기 모드는 무시됩니다. 이 함수가 반환된 후 이 데이터의 실제 재생이 발생할 수 있습니다.

에 대한 android.media.AudioTrack.write(byte[], int, int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Write(Int16[], Int32, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

[Android.Runtime.Register("write", "([SIII)I", "GetWrite_arraySIIIHandler", ApiSince=23)]
public virtual int Write (short[] audioData, int offsetInShorts, int sizeInShorts, Android.Media.WriteMode writeMode);
[<Android.Runtime.Register("write", "([SIII)I", "GetWrite_arraySIIIHandler", ApiSince=23)>]
abstract member Write : int16[] * int * int * Android.Media.WriteMode -> int
override this.Write : int16[] * int * int * Android.Media.WriteMode -> int

매개 변수

audioData
Int16[]

쓸 데이터를 보유하는 배열입니다.

offsetInShorts
Int32

쓸 데이터가 시작되는 audioData의 쇼츠로 표현된 오프셋입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

sizeInShorts
Int32

오프셋 뒤의 audioData에서 읽을 반바지의 수입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

writeMode
WriteMode

#WRITE_BLOCKING하나 , #WRITE_NON_BLOCKING. 정적 모드에는 영향을 주지 않습니다. <br>With #WRITE_BLOCKING, 쓰기는 모든 데이터가 오디오 싱크에 기록될 때까지 차단됩니다. <br>With #WRITE_NON_BLOCKING, 쓰기는 차단 없이 가능한 한 많은 오디오 데이터를 재생하기 위해 큐에 대기한 후 즉시 반환됩니다.

반환

0 또는 작성된 양수의 반바지 또는 다음 오류 코드 중 하나입니다. 쇼츠 수는 sizeInShorts를 초과하지 않는 채널 수의 배수입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li>#ERROR<> li<>에서 오류가< 반환됩니다.>

특성

설명

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다. AudioTrack 생성자에 지정된 형식은 배열의 데이터에 해당해야 합니다 AudioFormat#ENCODING_PCM_16BIT .

스트리밍 모드에서 차단 동작은 쓰기 모드에 따라 달라집니다. 쓰기 모드인 #WRITE_BLOCKING경우 모든 데이터가 재생을 위해 큐에 추가될 때까지 쓰기가 일반적으로 차단되며 전체 전송 횟수를 반환합니다. 그러나 쓰기 모드가 #WRITE_NON_BLOCKING있거나 항목에서 트랙이 중지되거나 일시 중지되거나 다른 스레드가 중지 또는 일시 중지를 호출하여 쓰기를 중단하거나 쓰기 중에 I/O 오류가 발생하면 쓰기가 짧은 전송 횟수를 반환할 수 있습니다.

정적 버퍼 모드에서 오프셋 0부터 시작하여 버퍼에 데이터를 복사합니다. 이 함수가 반환된 후 이 데이터의 실제 재생이 발생할 수 있습니다.

에 대한 android.media.AudioTrack.write(short[], int, int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

Write(Single[], Int32, Int32, WriteMode)

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다.

[Android.Runtime.Register("write", "([FIII)I", "GetWrite_arrayFIIIHandler")]
public virtual int Write (float[] audioData, int offsetInFloats, int sizeInFloats, Android.Media.WriteMode writeMode);
[<Android.Runtime.Register("write", "([FIII)I", "GetWrite_arrayFIIIHandler")>]
abstract member Write : single[] * int * int * Android.Media.WriteMode -> int
override this.Write : single[] * int * int * Android.Media.WriteMode -> int

매개 변수

audioData
Single[]

쓸 데이터를 보유하는 배열입니다. 오디오 파이프라인의 모든 이득이 unity(1.0f)보다 작거나 같고 반향과 같은 에너지를 추가할 수 있는 후처리 효과가 없는 경우 구현은 명목 범위 [-1.0f, 1.0f] 내의 샘플 값에 대해 클립되지 않습니다. 비통합 게인 필터를 사용하여 샘플을 계산하는 애플리케이션의 편의를 위해 명목 범위를 초과하는 샘플 값 +3 dB가 허용됩니다. 그러나 이러한 값은 결국 오디오 경로의 다양한 이득 및 이후 처리에 따라 제한되거나 잘려질 수 있습니다. 따라서 애플리케이션은 명목 범위 내에서 샘플 값을 제공하는 것이 좋습니다.

offsetInFloats
Int32

쓸 데이터가 시작되는 audioData에서 여러 부동 소수로 표현되는 오프셋입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

sizeInFloats
Int32

오프셋 뒤의 audioData에서 쓸 부동 소수 자릿수입니다. 음수이거나 데이터 액세스가 배열의 범위를 벗어나도록 해서는 안 됩니다.

writeMode
WriteMode

#WRITE_BLOCKING하나 , #WRITE_NON_BLOCKING. 정적 모드에는 영향을 주지 않습니다. <br>With #WRITE_BLOCKING, 쓰기는 모든 데이터가 오디오 싱크에 기록될 때까지 차단됩니다. <br>With #WRITE_NON_BLOCKING, 쓰기는 차단 없이 가능한 한 많은 오디오 데이터를 재생하기 위해 큐에 대기한 후 즉시 반환됩니다.

반환

0 또는 작성된 부동 소수점의 양수 또는 다음 오류 코드 중 하나입니다. 부동 소수 자릿수는 sizeInFloats를 초과하지 않는 채널 수의 배수입니다. <AudioTrack이 더 이상 유효하지 않고 다시 만들어야 하는 경우 매개 변수가 유효한 데이터 및 인덱스/li li로 확인되지 않으면 트랙이 제대로 초기화><><#ERROR_BAD_VALUE되지 않은 경우 ul<#ERROR_INVALID_OPERATION>> li#ERROR_DEAD_OBJECT>><입니다.< 일부 데이터가 성공적으로 전송된 경우 배달 못한 개체 오류 코드가 반환되지 않습니다. 이 경우 다른 오류/li/ul의 경우 다음 write()</li>#ERROR<> li<>에서 오류가< 반환됩니다.>

특성

설명

오디오 데이터를 재생(스트리밍 모드)을 위해 오디오 싱크에 쓰거나 이후 재생(정적 버퍼 모드)을 위해 오디오 데이터를 복사합니다. AudioTrack 생성자에 지정된 형식은 배열의 데이터에 해당해야 합니다 AudioFormat#ENCODING_PCM_FLOAT .

스트리밍 모드에서 차단 동작은 쓰기 모드에 따라 달라집니다. 쓰기 모드인 #WRITE_BLOCKING경우 모든 데이터가 재생을 위해 큐에 추가될 때까지 쓰기가 일반적으로 차단되며 전체 전송 횟수를 반환합니다. 그러나 쓰기 모드가 #WRITE_NON_BLOCKING있거나 항목에서 트랙이 중지되거나 일시 중지되거나 다른 스레드가 중지 또는 일시 중지를 호출하여 쓰기를 중단하거나 쓰기 중에 I/O 오류가 발생하면 쓰기가 짧은 전송 횟수를 반환할 수 있습니다.

정적 버퍼 모드에서는 오프셋 0부터 시작하는 버퍼에 데이터를 복사하고 쓰기 모드는 무시됩니다. 이 함수가 반환된 후 이 데이터의 실제 재생이 발생할 수 있습니다.

에 대한 android.media.AudioTrack.write(float[], int, int, int)Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상