AudioTrack.Write Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
Write(ByteBuffer, Int32, WriteMode) |
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). |
Write(Byte[], Int32, Int32) |
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). |
Write(Int16[], Int32, Int32) |
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). |
Write(ByteBuffer, Int32, WriteMode, Int64) |
Grava os dados de áudio no coletor de áudio para reprodução no modo de streaming em uma faixa HW_AV_SYNC. |
Write(Byte[], Int32, Int32, WriteMode) |
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). |
Write(Int16[], Int32, Int32, WriteMode) |
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). |
Write(Single[], Int32, Int32, WriteMode) |
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). |
Write(ByteBuffer, Int32, WriteMode)
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático).
[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
Parâmetros
- audioData
- ByteBuffer
O buffer que contém os dados a serem gravados, começando na posição informada pelo audioData.position()
.
<>BR Observe que, ao retornar, a posição do buffer (audioData.position()
) terá sido avançada para refletir a quantidade de dados que foi gravada com êxito no AudioTrack.
- sizeInBytes
- Int32
número de bytes a serem gravados. É recomendado, mas não imposto, que o número de bytes solicitados seja um múltiplo do tamanho do quadro (tamanho da amostra em bytes multiplicado pela contagem de canais).
<>BR Observe que isso pode diferir de audioData.remaining()
, mas não pode excedê-lo.
- writeMode
- WriteMode
um dos #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Não tem efeito no modo estático.
<>BR Com #WRITE_BLOCKING
, a gravação será bloqueada até que todos os dados tenham sido gravados no coletor de áudio.
<>BR Com #WRITE_NON_BLOCKING
, a gravação retornará imediatamente após enfileirar o máximo possível de dados de áudio para reprodução sem bloqueio.
Retornos
zero ou o número positivo de bytes que foram gravados ou um dos seguintes códigos de erro.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li></ul>
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). O audioData no ByteBuffer deve corresponder ao formato especificado no construtor AudioTrack.
No modo de streaming, o comportamento de bloqueio depende do modo de gravação. Se o modo de gravação for #WRITE_BLOCKING
, a gravação normalmente será bloqueada até que todos os dados tenham sido enfileirados para reprodução e retornará uma contagem completa de transferências. No entanto, se o modo de gravação for #WRITE_NON_BLOCKING
, ou a trilha for interrompida ou pausada na entrada, ou outro thread interromper a gravação chamando stop ou pause, ou ocorrer um erro de E/S durante a gravação, a gravação poderá retornar uma contagem de transferência curta.
No modo de buffer estático, copia os dados para o buffer começando no deslocamento 0 e o modo de gravação é ignorado. Observe que a reprodução real desses dados pode ocorrer depois que essa função retorna.
Documentação Java para android.media.AudioTrack.write(java.nio.ByteBuffer, int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
Write(Byte[], Int32, Int32)
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático).
[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
Parâmetros
- audioData
- Byte[]
A matriz que contém os dados a serem reproduzidos.
- offsetInBytes
- Int32
o deslocamento expresso em bytes em audioData onde os dados a serem gravados são iniciados. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- sizeInBytes
- Int32
o número de bytes a serem gravados em audioData após o deslocamento. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
Retornos
zero ou o número positivo de bytes que foram gravados ou um dos seguintes códigos de erro. O número de bytes será um múltiplo do tamanho do quadro em bytes para não exceder sizeInBytes.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li<>/ul> Isso é equivalente a #write(byte[], int, int, int)
com writeMode
set como .#WRITE_BLOCKING
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). O formato especificado no construtor AudioTrack deve corresponder AudioFormat#ENCODING_PCM_8BIT
aos dados na matriz. O formato pode ser AudioFormat#ENCODING_PCM_16BIT
, mas isso foi preterido.
No modo de streaming, a gravação normalmente será bloqueada até que todos os dados tenham sido enfileirados para reprodução e retornará uma contagem completa de transferências. No entanto, se a faixa for interrompida ou pausada na entrada, ou outro thread interromper a gravação chamando stop ou pause, ou ocorrer um erro de E/S durante a gravação, a gravação poderá retornar uma contagem de transferência curta.
No modo de buffer estático, copia os dados para o buffer começando no deslocamento 0. Observe que a reprodução real desses dados pode ocorrer depois que essa função retorna.
Documentação Java para android.media.AudioTrack.write(byte[], int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
Write(Int16[], Int32, Int32)
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático).
[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
Parâmetros
- audioData
- Int16[]
A matriz que contém os dados a serem reproduzidos.
- offsetInShorts
- Int32
o deslocamento expresso em shorts em audioData onde os dados a serem reproduzidos começam. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- sizeInShorts
- Int32
o número de curtas para ler em audioData após o deslocamento. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
Retornos
zero ou o número positivo de curtas que foram escritas, ou um dos seguintes códigos de erro. O número de shorts será um múltiplo da contagem de canais para não exceder sizeInShorts.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li<>/ul> Isso é equivalente a #write(short[], int, int, int)
com writeMode
set como .#WRITE_BLOCKING
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). O formato especificado no construtor AudioTrack deve corresponder AudioFormat#ENCODING_PCM_16BIT
aos dados na matriz.
No modo de streaming, a gravação normalmente será bloqueada até que todos os dados tenham sido enfileirados para reprodução e retornará uma contagem completa de transferências. No entanto, se a faixa for interrompida ou pausada na entrada, ou outro thread interromper a gravação chamando stop ou pause, ou ocorrer um erro de E/S durante a gravação, a gravação poderá retornar uma contagem de transferência curta.
No modo de buffer estático, copia os dados para o buffer começando no deslocamento 0. Observe que a reprodução real desses dados pode ocorrer depois que essa função retorna.
Documentação Java para android.media.AudioTrack.write(short[], int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
Write(ByteBuffer, Int32, WriteMode, Int64)
Grava os dados de áudio no coletor de áudio para reprodução no modo de streaming em uma faixa 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
Parâmetros
- audioData
- ByteBuffer
O buffer que contém os dados a serem gravados, começando na posição informada pelo audioData.position()
.
<>BR Observe que, ao retornar, a posição do buffer (audioData.position()
) terá sido avançada para refletir a quantidade de dados que foi gravada com êxito no AudioTrack.
- sizeInBytes
- Int32
número de bytes a serem gravados. É recomendado, mas não imposto, que o número de bytes solicitados seja um múltiplo do tamanho do quadro (tamanho da amostra em bytes multiplicado pela contagem de canais).
<>BR Observe que isso pode diferir de audioData.remaining()
, mas não pode excedê-lo.
- writeMode
- WriteMode
um dos #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
.
<>BR Com #WRITE_BLOCKING
, a gravação será bloqueada até que todos os dados tenham sido gravados no coletor de áudio.
<>BR Com #WRITE_NON_BLOCKING
, a gravação retornará imediatamente após enfileirar o máximo possível de dados de áudio para reprodução sem bloqueio.
- timestamp
- Int64
O carimbo de data/hora, em nanossegundos, do primeiro quadro de áudio decodificável no audioData fornecido.
Retornos
zero ou o número positivo de bytes que foram gravados ou um dos seguintes códigos de erro.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li></ul>
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução no modo de streaming em uma faixa HW_AV_SYNC. O comportamento de bloqueio dependerá do modo de gravação.
Documentação Java para android.media.AudioTrack.write(java.nio.ByteBuffer, int, int, long)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
Write(Byte[], Int32, Int32, WriteMode)
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático).
[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
Parâmetros
- audioData
- Byte[]
A matriz que contém os dados a serem reproduzidos.
- offsetInBytes
- Int32
o deslocamento expresso em bytes em audioData onde os dados a serem gravados são iniciados. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- sizeInBytes
- Int32
o número de bytes a serem gravados em audioData após o deslocamento. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- writeMode
- WriteMode
um dos #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Não tem efeito no modo estático.
<br>Com #WRITE_BLOCKING
, a gravação será bloqueada até que todos os dados tenham sido gravados no coletor de áudio.
<br>Com #WRITE_NON_BLOCKING
o , a gravação retornará imediatamente após enfileirar o máximo possível de dados de áudio para reprodução sem bloqueio.
Retornos
zero ou o número positivo de bytes que foram gravados ou um dos seguintes códigos de erro. O número de bytes será um múltiplo do tamanho do quadro em bytes para não exceder sizeInBytes.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li></ul>
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). O formato especificado no construtor AudioTrack deve corresponder AudioFormat#ENCODING_PCM_8BIT
aos dados na matriz. O formato pode ser AudioFormat#ENCODING_PCM_16BIT
, mas isso foi preterido.
No modo de streaming, o comportamento de bloqueio depende do modo de gravação. Se o modo de gravação for #WRITE_BLOCKING
, a gravação normalmente será bloqueada até que todos os dados tenham sido enfileirados para reprodução e retornará uma contagem completa de transferências. No entanto, se o modo de gravação for #WRITE_NON_BLOCKING
, ou a trilha for interrompida ou pausada na entrada, ou outro thread interromper a gravação chamando stop ou pause, ou ocorrer um erro de E/S durante a gravação, a gravação poderá retornar uma contagem de transferência curta.
No modo de buffer estático, copia os dados para o buffer começando no deslocamento 0 e o modo de gravação é ignorado. Observe que a reprodução real desses dados pode ocorrer depois que essa função retorna.
Documentação Java para android.media.AudioTrack.write(byte[], int, int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
Write(Int16[], Int32, Int32, WriteMode)
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático).
[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
Parâmetros
- audioData
- Int16[]
A matriz que contém os dados para gravação.
- offsetInShorts
- Int32
o deslocamento expresso em shorts em audioData onde os dados para gravar começam. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- sizeInShorts
- Int32
o número de curtas para ler em audioData após o deslocamento. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- writeMode
- WriteMode
um dos #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Não tem efeito no modo estático.
<br>Com #WRITE_BLOCKING
, a gravação será bloqueada até que todos os dados tenham sido gravados no coletor de áudio.
<br>Com #WRITE_NON_BLOCKING
o , a gravação retornará imediatamente após enfileirar o máximo possível de dados de áudio para reprodução sem bloqueio.
Retornos
zero ou o número positivo de curtas que foram escritas, ou um dos seguintes códigos de erro. O número de shorts será um múltiplo da contagem de canais para não exceder sizeInShorts.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li></ul>
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). O formato especificado no construtor AudioTrack deve corresponder AudioFormat#ENCODING_PCM_16BIT
aos dados na matriz.
No modo de streaming, o comportamento de bloqueio depende do modo de gravação. Se o modo de gravação for #WRITE_BLOCKING
, a gravação normalmente será bloqueada até que todos os dados tenham sido enfileirados para reprodução e retornará uma contagem completa de transferências. No entanto, se o modo de gravação for #WRITE_NON_BLOCKING
, ou a trilha for interrompida ou pausada na entrada, ou outro thread interromper a gravação chamando stop ou pause, ou ocorrer um erro de E/S durante a gravação, a gravação poderá retornar uma contagem de transferência curta.
No modo de buffer estático, copia os dados para o buffer começando no deslocamento 0. Observe que a reprodução real desses dados pode ocorrer depois que essa função retorna.
Documentação Java para android.media.AudioTrack.write(short[], int, int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Aplica-se a
Write(Single[], Int32, Int32, WriteMode)
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático).
[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
Parâmetros
- audioData
- Single[]
A matriz que contém os dados para gravação. A implementação não clipa para valores de amostra dentro do intervalo nominal [-1.0f, 1.0f], desde que todos os ganhos no pipeline de áudio sejam menores ou iguais à unidade (1.0f), e na ausência de efeitos de pós-processamento que possam adicionar energia, como reverb. Para a conveniência de aplicações que computam amostras usando filtros com ganho não unitário, valores de amostra +3 dB além da faixa nominal são permitidos. No entanto, tais valores podem eventualmente ser limitados ou cortados, dependendo de vários ganhos e processamento posterior no caminho de áudio. Portanto, as aplicações são encorajadas a fornecer valores de amostras dentro da faixa nominal.
- offsetInFloats
- Int32
o deslocamento, expresso como um número de flutuações, em audioData onde os dados a serem gravados começam. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- sizeInFloats
- Int32
o número de flutuações a serem gravadas em audioData após o deslocamento. Não deve ser negativo nem fazer com que o acesso a dados saia dos limites da matriz.
- writeMode
- WriteMode
um dos #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Não tem efeito no modo estático.
<br>Com #WRITE_BLOCKING
, a gravação será bloqueada até que todos os dados tenham sido gravados no coletor de áudio.
<br>Com #WRITE_NON_BLOCKING
o , a gravação retornará imediatamente após enfileirar o máximo possível de dados de áudio para reprodução sem bloqueio.
Retornos
zero ou o número positivo de flutuações que foram gravadas ou um dos seguintes códigos de erro. O número de floats será um múltiplo da contagem de canais para não exceder sizeInFloats.
<ul li#ERROR_INVALID_OPERATION
> se a faixa não for inicializada< corretamente/li<>li#ERROR_BAD_VALUE
> se os parâmetros não resolverem para dados válidos e índices</li<>li>#ERROR_DEAD_OBJECT
se o AudioTrack não for mais válido e precisar ser recriado.>< O código de erro do objeto morto não será retornado se alguns dados foram transferidos com êxito. Nesse caso, o erro é retornado no próximo write()</li><li#ERROR
> em caso de outro erro</li></ul>
- Atributos
Comentários
Grava os dados de áudio no coletor de áudio para reprodução (modo de streaming) ou copia os dados de áudio para reprodução posterior (modo de buffer estático). O formato especificado no construtor AudioTrack deve corresponder AudioFormat#ENCODING_PCM_FLOAT
aos dados na matriz.
No modo de streaming, o comportamento de bloqueio depende do modo de gravação. Se o modo de gravação for #WRITE_BLOCKING
, a gravação normalmente será bloqueada até que todos os dados tenham sido enfileirados para reprodução e retornará uma contagem completa de transferências. No entanto, se o modo de gravação for #WRITE_NON_BLOCKING
, ou a trilha for interrompida ou pausada na entrada, ou outro thread interromper a gravação chamando stop ou pause, ou ocorrer um erro de E/S durante a gravação, a gravação poderá retornar uma contagem de transferência curta.
No modo de buffer estático, copia os dados para o buffer começando no deslocamento 0 e o modo de gravação é ignorado. Observe que a reprodução real desses dados pode ocorrer depois que essa função retorna.
Documentação Java para android.media.AudioTrack.write(float[], int, int, int)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.