AudioTrack.Write Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Overload
Write(ByteBuffer, Int32, WriteMode) |
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). |
Write(Byte[], Int32, Int32) |
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). |
Write(Int16[], Int32, Int32) |
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). |
Write(ByteBuffer, Int32, WriteMode, Int64) |
Menulis data audio ke sink audio untuk pemutaran dalam mode streaming pada trek HW_AV_SYNC. |
Write(Byte[], Int32, Int32, WriteMode) |
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). |
Write(Int16[], Int32, Int32, WriteMode) |
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). |
Write(Single[], Int32, Int32, WriteMode) |
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). |
Write(ByteBuffer, Int32, WriteMode)
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis).
[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
Parameter
- audioData
- ByteBuffer
buffer yang menyimpan data untuk ditulis, dimulai dari posisi yang dilaporkan oleh audioData.position()
.
<BR>Perhatikan bahwa saat kembali, posisi buffer (audioData.position()
) akan dimajukan untuk mencerminkan jumlah data yang berhasil ditulis ke AudioTrack.
- sizeInBytes
- Int32
jumlah byte yang akan ditulis. Disarankan tetapi tidak diberlakukan bahwa jumlah byte yang diminta menjadi kelipatan ukuran bingkai (ukuran sampel dalam byte dikalikan dengan jumlah saluran).
<BR>Note ini mungkin berbeda dari audioData.remaining()
, tetapi tidak dapat melebihinya.
- writeMode
- WriteMode
salah satu dari #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Ini tidak berpengaruh dalam mode statis.
<BR>Dengan #WRITE_BLOCKING
, tulis akan memblokir hingga semua data ditulis ke sink audio.
<BR>Dengan #WRITE_NON_BLOCKING
, tulisan akan segera kembali setelah mengantrekan data audio sebanyak mungkin untuk pemutaran tanpa memblokir.
Mengembalikan
nol atau jumlah positif byte yang ditulis, atau salah satu kode kesalahan berikut.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
>>< berikutnya jika terjadi kesalahan</li></ul lainnya>
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). AudioData di ByteBuffer harus cocok dengan format yang ditentukan dalam konstruktor AudioTrack.
Dalam mode streaming, perilaku pemblokiran tergantung pada mode tulis. Jika mode tulis adalah #WRITE_BLOCKING
, penulisan biasanya akan memblokir sampai semua data telah diantrekan untuk pemutaran, dan akan mengembalikan jumlah transfer penuh. Namun, jika mode tulis adalah #WRITE_NON_BLOCKING
, atau trek dihentikan atau dijeda pada entri, atau utas lain mengganggu penulisan dengan memanggil berhenti atau menjeda, atau kesalahan I/O terjadi selama penulisan, maka penulisan dapat mengembalikan jumlah transfer singkat.
Dalam mode buffer statis, salin data ke buffer mulai dari offset 0, dan mode tulis diabaikan. Perhatikan bahwa pemutaran aktual data ini mungkin terjadi setelah fungsi ini kembali.
Dokumentasi Java untuk android.media.AudioTrack.write(java.nio.ByteBuffer, int, int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Berlaku untuk
Write(Byte[], Int32, Int32)
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis).
[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
Parameter
- audioData
- Byte[]
array yang menyimpan data untuk diputar.
- offsetInBytes
- Int32
offset yang dinyatakan dalam byte dalam audioData tempat data untuk ditulis dimulai. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- sizeInBytes
- Int32
jumlah byte yang akan ditulis dalam audioData setelah offset. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
Mengembalikan
nol atau jumlah positif byte yang ditulis, atau salah satu kode kesalahan berikut. Jumlah byte akan menjadi kelipatan ukuran bingkai dalam byte tidak melebihi sizeInBytes.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
><> berikutnya jika terjadi kesalahan< lain/li<>/ul> Ini setara #write(byte[], int, int, int)
dengan dengan writeMode
yang diatur ke .#WRITE_BLOCKING
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). Format yang ditentukan dalam konstruktor AudioTrack harus AudioFormat#ENCODING_PCM_8BIT
sesuai dengan data dalam array. Formatnya bisa AudioFormat#ENCODING_PCM_16BIT
, tetapi ini tidak digunakan lagi.
Dalam mode streaming, penulisan biasanya akan memblokir hingga semua data telah diantrekan untuk pemutaran, dan akan mengembalikan jumlah transfer penuh. Namun, jika trek dihentikan atau dijeda pada entri, atau utas lain mengganggu penulisan dengan memanggil berhenti atau menjeda, atau kesalahan I/O terjadi selama penulisan, maka penulisan dapat mengembalikan jumlah transfer singkat.
Dalam mode buffer statis, salin data ke buffer mulai dari offset 0. Perhatikan bahwa pemutaran aktual data ini mungkin terjadi setelah fungsi ini kembali.
Dokumentasi Java untuk android.media.AudioTrack.write(byte[], int, int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Berlaku untuk
Write(Int16[], Int32, Int32)
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis).
[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
Parameter
- audioData
- Int16[]
array yang menyimpan data untuk diputar.
- offsetInShorts
- Int32
offset yang dinyatakan dalam celana pendek dalam audioData tempat data untuk diputar dimulai. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- sizeInShorts
- Int32
jumlah celana pendek yang akan dibaca dalam audioData setelah offset. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
Mengembalikan
nol atau jumlah positif celana pendek yang ditulis, atau salah satu kode kesalahan berikut. Jumlah celana pendek akan menjadi kelipatan jumlah saluran untuk tidak melebihi sizeInShorts.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
><> berikutnya jika terjadi kesalahan< lain/li<>/ul> Ini setara #write(short[], int, int, int)
dengan dengan writeMode
yang diatur ke .#WRITE_BLOCKING
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). Format yang ditentukan dalam konstruktor AudioTrack harus AudioFormat#ENCODING_PCM_16BIT
sesuai dengan data dalam array.
Dalam mode streaming, penulisan biasanya akan memblokir hingga semua data telah diantrekan untuk pemutaran, dan akan mengembalikan jumlah transfer penuh. Namun, jika trek dihentikan atau dijeda pada entri, atau utas lain mengganggu penulisan dengan memanggil berhenti atau menjeda, atau kesalahan I/O terjadi selama penulisan, maka penulisan dapat mengembalikan jumlah transfer singkat.
Dalam mode buffer statis, salin data ke buffer mulai dari offset 0. Perhatikan bahwa pemutaran aktual data ini mungkin terjadi setelah fungsi ini kembali.
Dokumentasi Java untuk android.media.AudioTrack.write(short[], int, int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Berlaku untuk
Write(ByteBuffer, Int32, WriteMode, Int64)
Menulis data audio ke sink audio untuk pemutaran dalam mode streaming pada trek 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
Parameter
- audioData
- ByteBuffer
buffer yang menyimpan data untuk ditulis, dimulai dari posisi yang dilaporkan oleh audioData.position()
.
<BR>Perhatikan bahwa saat kembali, posisi buffer (audioData.position()
) akan dimajukan untuk mencerminkan jumlah data yang berhasil ditulis ke AudioTrack.
- sizeInBytes
- Int32
jumlah byte yang akan ditulis. Disarankan tetapi tidak diberlakukan bahwa jumlah byte yang diminta menjadi kelipatan ukuran bingkai (ukuran sampel dalam byte dikalikan dengan jumlah saluran).
<BR>Note ini mungkin berbeda dari audioData.remaining()
, tetapi tidak dapat melebihinya.
- writeMode
- WriteMode
salah satu dari #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
.
<BR>Dengan #WRITE_BLOCKING
, tulis akan memblokir hingga semua data ditulis ke sink audio.
<BR>Dengan #WRITE_NON_BLOCKING
, tulisan akan segera kembali setelah mengantrekan data audio sebanyak mungkin untuk pemutaran tanpa memblokir.
- timestamp
- Int64
Tanda waktu, dalam nanodetik, dari bingkai audio pertama yang dapat didekodekan dalam audioData yang disediakan.
Mengembalikan
nol atau jumlah positif byte yang ditulis, atau salah satu kode kesalahan berikut.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
>>< berikutnya jika terjadi kesalahan</li></ul lainnya>
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran dalam mode streaming pada trek HW_AV_SYNC. Perilaku pemblokiran akan bergantung pada mode tulis.
Dokumentasi Java untuk android.media.AudioTrack.write(java.nio.ByteBuffer, int, int, long)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Berlaku untuk
Write(Byte[], Int32, Int32, WriteMode)
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis).
[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
Parameter
- audioData
- Byte[]
array yang menyimpan data untuk diputar.
- offsetInBytes
- Int32
offset yang dinyatakan dalam byte dalam audioData tempat data untuk ditulis dimulai. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- sizeInBytes
- Int32
jumlah byte yang akan ditulis dalam audioData setelah offset. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- writeMode
- WriteMode
salah satu dari #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Ini tidak berpengaruh dalam mode statis.
<br>With #WRITE_BLOCKING
, tulis akan memblokir hingga semua data ditulis ke sink audio.
<br>With #WRITE_NON_BLOCKING
, tulisan akan segera kembali setelah mengantrekan data audio sebanyak mungkin untuk pemutaran tanpa memblokir.
Mengembalikan
nol atau jumlah positif byte yang ditulis, atau salah satu kode kesalahan berikut. Jumlah byte akan menjadi kelipatan ukuran bingkai dalam byte tidak melebihi sizeInBytes.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
>>< berikutnya jika terjadi kesalahan</li></ul lainnya>
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). Format yang ditentukan dalam konstruktor AudioTrack harus AudioFormat#ENCODING_PCM_8BIT
sesuai dengan data dalam array. Formatnya bisa AudioFormat#ENCODING_PCM_16BIT
, tetapi ini tidak digunakan lagi.
Dalam mode streaming, perilaku pemblokiran tergantung pada mode tulis. Jika mode tulis adalah #WRITE_BLOCKING
, penulisan biasanya akan memblokir sampai semua data telah diantrekan untuk pemutaran, dan akan mengembalikan jumlah transfer penuh. Namun, jika mode tulis adalah #WRITE_NON_BLOCKING
, atau trek dihentikan atau dijeda pada entri, atau utas lain mengganggu penulisan dengan memanggil berhenti atau menjeda, atau kesalahan I/O terjadi selama penulisan, maka penulisan dapat mengembalikan jumlah transfer singkat.
Dalam mode buffer statis, salin data ke buffer mulai dari offset 0, dan mode tulis diabaikan. Perhatikan bahwa pemutaran aktual data ini mungkin terjadi setelah fungsi ini kembali.
Dokumentasi Java untuk android.media.AudioTrack.write(byte[], int, int, int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Berlaku untuk
Write(Int16[], Int32, Int32, WriteMode)
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis).
[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
Parameter
- audioData
- Int16[]
array yang menyimpan data untuk ditulis.
- offsetInShorts
- Int32
offset yang dinyatakan dalam celana pendek dalam audioData tempat data untuk ditulis dimulai. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- sizeInShorts
- Int32
jumlah celana pendek yang akan dibaca dalam audioData setelah offset. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- writeMode
- WriteMode
salah satu dari #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Ini tidak berpengaruh dalam mode statis.
<br>With #WRITE_BLOCKING
, tulis akan memblokir hingga semua data ditulis ke sink audio.
<br>With #WRITE_NON_BLOCKING
, tulisan akan segera kembali setelah mengantrekan data audio sebanyak mungkin untuk pemutaran tanpa memblokir.
Mengembalikan
nol atau jumlah positif celana pendek yang ditulis, atau salah satu kode kesalahan berikut. Jumlah celana pendek akan menjadi kelipatan jumlah saluran untuk tidak melebihi sizeInShorts.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
>>< berikutnya jika terjadi kesalahan</li></ul lainnya>
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). Format yang ditentukan dalam konstruktor AudioTrack harus AudioFormat#ENCODING_PCM_16BIT
sesuai dengan data dalam array.
Dalam mode streaming, perilaku pemblokiran tergantung pada mode tulis. Jika mode tulis adalah #WRITE_BLOCKING
, penulisan biasanya akan memblokir sampai semua data telah diantrekan untuk pemutaran, dan akan mengembalikan jumlah transfer penuh. Namun, jika mode tulis adalah #WRITE_NON_BLOCKING
, atau trek dihentikan atau dijeda pada entri, atau utas lain mengganggu penulisan dengan memanggil berhenti atau menjeda, atau kesalahan I/O terjadi selama penulisan, maka penulisan dapat mengembalikan jumlah transfer singkat.
Dalam mode buffer statis, salin data ke buffer mulai dari offset 0. Perhatikan bahwa pemutaran aktual data ini mungkin terjadi setelah fungsi ini kembali.
Dokumentasi Java untuk android.media.AudioTrack.write(short[], int, int, int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Berlaku untuk
Write(Single[], Int32, Int32, WriteMode)
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis).
[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
Parameter
- audioData
- Single[]
array yang menyimpan data untuk ditulis. Implementasi tidak mengklip nilai sampel dalam rentang nominal [-1.0f, 1.0f], asalkan semua keuntungan dalam alur audio kurang dari atau sama dengan unity (1,0f), dan tanpa efek pasca-pemrosesan yang dapat menambah energi, seperti gaung. Untuk kenyamanan aplikasi yang menghitung sampel menggunakan filter dengan perolehan non-unity, nilai sampel +3 dB di luar rentang nominal diizinkan. Namun, nilai tersebut pada akhirnya dapat dibatasi atau diklip, tergantung pada berbagai keuntungan dan pemrosesan selanjutnya di jalur audio. Oleh karena itu aplikasi didorong untuk memberikan nilai sampel dalam rentang nominal.
- offsetInFloats
- Int32
offset, dinyatakan sebagai sejumlah float, dalam audioData tempat data untuk ditulis dimulai. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- sizeInFloats
- Int32
jumlah float yang akan ditulis dalam audioData setelah offset. Tidak boleh negatif, atau menyebabkan akses data keluar dari batas array.
- writeMode
- WriteMode
salah satu dari #WRITE_BLOCKING
, #WRITE_NON_BLOCKING
. Ini tidak berpengaruh dalam mode statis.
<br>With #WRITE_BLOCKING
, tulis akan memblokir hingga semua data ditulis ke sink audio.
<br>With #WRITE_NON_BLOCKING
, tulisan akan segera kembali setelah mengantrekan data audio sebanyak mungkin untuk pemutaran tanpa memblokir.
Mengembalikan
nol atau jumlah positif float yang ditulis, atau salah satu kode kesalahan berikut. Jumlah float akan menjadi kelipatan jumlah saluran tidak melebihi sizeInFloats.
<ul><li#ERROR_INVALID_OPERATION
> jika trek tidak diinisialisasi</li><li#ERROR_BAD_VALUE
> dengan benar jika parameter tidak diselesaikan ke data dan indeks</li li><>#ERROR_DEAD_OBJECT
yang valid jika AudioTrack tidak valid lagi dan perlu dibuat ulang. Kode kesalahan objek mati tidak dikembalikan jika beberapa data berhasil ditransfer. Dalam hal ini, kesalahan dikembalikan pada write()</li li#ERROR
>>< berikutnya jika terjadi kesalahan</li></ul lainnya>
- Atribut
Keterangan
Menulis data audio ke sink audio untuk pemutaran (mode streaming), atau menyalin data audio untuk pemutaran nanti (mode buffer statis). Format yang ditentukan dalam konstruktor AudioTrack harus AudioFormat#ENCODING_PCM_FLOAT
sesuai dengan data dalam array.
Dalam mode streaming, perilaku pemblokiran tergantung pada mode tulis. Jika mode tulis adalah #WRITE_BLOCKING
, penulisan biasanya akan memblokir sampai semua data telah diantrekan untuk pemutaran, dan akan mengembalikan jumlah transfer penuh. Namun, jika mode tulis adalah #WRITE_NON_BLOCKING
, atau trek dihentikan atau dijeda pada entri, atau utas lain mengganggu penulisan dengan memanggil berhenti atau menjeda, atau kesalahan I/O terjadi selama penulisan, maka penulisan dapat mengembalikan jumlah transfer singkat.
Dalam mode buffer statis, salin data ke buffer mulai dari offset 0, dan mode tulis diabaikan. Perhatikan bahwa pemutaran aktual data ini mungkin terjadi setelah fungsi ini kembali.
Dokumentasi Java untuk android.media.AudioTrack.write(float[], int, int, int)
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.