Bagikan melalui


AudioTrack.Write Metode

Definisi

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.

Berlaku untuk