MediaPlayer Kelas
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.
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming.
[Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)]
public class MediaPlayer : Java.Lang.Object, Android.Media.IAudioRouting, Android.Media.IVolumeAutomation, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/media/MediaPlayer", DoNotGenerateAcw=true)>]
type MediaPlayer = class
inherit Object
interface IAudioRouting
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IVolumeAutomation
- Warisan
- Atribut
- Penerapan
Keterangan
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming.
MediaPlayer tidak aman untuk utas. Pembuatan dan semua akses ke instans pemutar harus berada di utas yang sama. Jika mendaftarkan panggilan balik, utas harus memiliki Looper.
Topik yang dibahas di sini adalah: <Diagram><Status ol<>li>Status Valid dan Tidak<Valid li Izin<li>>Mendaftarkan panggilan balik< informasi dan kesalahan/ol>
<div class="special reference"><h3>Developer Guides</h3>
Untuk informasi selengkapnya tentang cara menggunakan MediaPlayer, baca panduan pengembang Pemutaran Media.
</Div>
"StateDiagram"><h3>State Diagram</h3>
Kontrol pemutaran file audio/video dan aliran dikelola sebagai komputer status. Diagram berikut menunjukkan siklus hidup dan status objek MediaPlayer yang didorong oleh operasi kontrol pemutaran yang didukung. Oval mewakili status tempat objek MediaPlayer berada. Busur mewakili operasi kontrol pemutaran yang mendorong transisi status objek. Ada dua jenis busur. Busur dengan kepala panah tunggal mewakili panggilan metode sinkron, sementara yang memiliki kepala panah ganda mewakili panggilan metode asinkron.
<img src=".. /.. /.. /images/mediaplayer_state_diagram.gif" alt="Diagram Status MediaPlayer" border="0" />
Dari diagram status ini, seseorang dapat melihat bahwa objek MediaPlayer memiliki status berikut:
<ul>li Ketika objek MediaPlayer baru saja dibuat menggunakan new
atau setelah #reset()
dipanggil, objek tersebut berada dalam <status diam></em>; dan setelah #release()
dipanggil, objek berada dalam <status em>End</em>.>< Di antara kedua status ini adalah siklus hidup objek MediaPlayer. <ul><li>Ada perbedaan halus tetapi penting antara objek MediaPlayer yang baru dibangun dan objek MediaPlayer setelah #reset()
dipanggil. Ini adalah kesalahan pemrograman untuk memanggil metode seperti #getCurrentPosition()
, , , #getDuration()
, #getVideoHeight()
#getVideoWidth()
, #setAudioAttributes(AudioAttributes)
, #pause()
#start()
#stop()
#setLooping(boolean)
#setVolume(float, float)
, #seekTo(long, int)
#prepare()
atau #prepareAsync()
dalam <status diam></em> untuk kedua kasus. Jika salah satu metode ini dipanggil tepat setelah objek MediaPlayer dibangun, metode panggilan balik yang disediakan pengguna OnErrorListener.onError() tidak akan dipanggil oleh mesin pemutar internal dan status objek tetap tidak berubah; tetapi jika metode ini dipanggil tepat setelah #reset()
, metode panggilan balik yang disediakan pengguna OnErrorListener.onError() akan dipanggil oleh mesin pemutar internal dan objek akan ditransfer ke <status em>Error</em> . </li><li>Anda harus menyimpan referensi ke instans MediaPlayer untuk mencegahnya dikumpulkan. Jika instans MediaPlayer adalah sampah yang dikumpulkan, #release
akan dipanggil, menyebabkan pemutaran yang sedang berlangsung berhenti. <li>Anda harus memanggil #release()
setelah selesai menggunakan instans untuk merilis sumber daya yang diperoleh, seperti memori dan codec. Setelah memanggil #release
, Anda tidak boleh lagi berinteraksi dengan instans yang dirilis. <objek Li>MediaPlayer yang dibuat menggunakan new
berada dalam <status diam></em>, sementara yang dibuat dengan salah satu metode nyaman create
yang kelebihan beban adalah <em>NOT</em> dalam <status diam></em> em. Bahkan, objek berada dalam <status siap></em> jika pembuatan menggunakan create
metode berhasil. </li>/ul<>/li li><>Secara umum, beberapa operasi kontrol pemutaran mungkin gagal karena berbagai alasan, seperti format audio/video yang tidak didukung, audio/video yang tidak disetujui dengan buruk, resolusi terlalu tinggi, batas waktu streaming, dan segitunya.< Dengan demikian, pelaporan dan pemulihan kesalahan adalah perhatian penting dalam keadaan ini. Terkadang, karena kesalahan pemrograman, memanggil operasi kontrol pemutaran dalam status tidak valid juga dapat terjadi. Dalam semua kondisi kesalahan ini, mesin pemutar internal memanggil metode OnErrorListener.onError() yang disediakan pengguna jika OnErrorListener telah didaftarkan sebelumnya melalui #setOnErrorListener(android.media.MediaPlayer.OnErrorListener)
. <ul><li>Penting untuk dicatat bahwa setelah kesalahan terjadi, objek MediaPlayer memasuki <status em>Error</em> (kecuali seperti yang disebutkan di atas), bahkan jika pendengar kesalahan belum didaftarkan oleh aplikasi.</li li><>Untuk menggunakan kembali objek MediaPlayer yang berada dalam <> status Em Error</em> dan pulih dari kesalahan, #reset()
dapat dipanggil untuk memulihkan objek ke <status Diam<>/em.<>/li li><>Ini adalah praktik pemrograman yang baik agar aplikasi Anda mendaftarkan OnErrorListener untuk mencari pemberitahuan kesalahan dari mesin pemutar internal.</li li><>IllegalStateException dilemparkan untuk mencegah kesalahan pemrograman #prepare()
seperti memanggil , #prepareAsync()
, atau salah satu metode yang kelebihan setDataSource
beban dalam keadaan tidak valid. </li>/ul></li li><>Memanggil #setDataSource(FileDescriptor)
, atau , atau #setDataSource(String)
#setDataSource(Context, Uri)
, atau #setDataSource(FileDescriptor, long, long)
, atau #setDataSource(MediaDataSource)
mentransfer objek MediaPlayer dalam <status diam<>/em> ke <status Inisialisasi<>/em>.< <ul><li>An IllegalStateException dilemparkan jika setDataSource() dipanggil dalam keadaan lain.</li li><>Ini adalah praktik pemrograman yang baik untuk selalu diwaspadai IllegalArgumentException
dan IOException
yang mungkin dilemparkan dari metode yang kelebihan setDataSource
beban.<Objek /li></ul></li>><A MediaPlayer harus terlebih dahulu memasukkan <status em>Disiapkan</em> sebelum pemutaran dapat dimulai. <ul>li Ada dua cara (sinkron vs. asinkron) bahwa <status em>Disiapkan</em> dapat dicapai: baik panggilan ke #prepare()
(sinkron) yang mentransfer objek ke <status em>Disiapkan</em> setelah panggilan metode kembali, atau panggilan ke #prepareAsync()
(asinkron) yang pertama kali mentransfer objek ke <em>Mempersiapkan</em>>< status setelah panggilan kembali (yang terjadi hampir segera) sementara mesin pemutar internal terus bekerja pada sisa pekerjaan persiapan sampai pekerjaan persiapan selesai. Ketika persiapan selesai atau ketika #prepare()
panggilan kembali, mesin pemutar internal kemudian memanggil metode panggilan balik yang disediakan pengguna, onPrepared() dari antarmuka OnPreparedListener, jika OnPreparedListener didaftarkan sebelumnya melalui #setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)
.</li li><>Penting untuk dicatat bahwa <status em>Preparing</em> adalah status sementara, dan perilaku memanggil metode apa pun dengan efek samping sementara objek MediaPlayer berada dalam <status em>Preparing</em> tidak terdefinisi.</li><Li>IlegalStateException dilemparkan jika #prepare()
atau #prepareAsync()
dipanggil dalam keadaan lain.</li li>><Sementara dalam <status disiapkan<>/em>, properti seperti volume audio/suara, screenOnWhilePlaying, perulangan dapat disesuaikan dengan memanggil metode set yang sesuai.</li></ul></li li><>Untuk memulai pemutaran, #start()
harus dipanggil. Setelah #start()
berhasil dikembalikan, objek MediaPlayer berada dalam <status Dimulai></em>. #isPlaying()
dapat dipanggil untuk menguji apakah objek MediaPlayer berada dalam <status memulai></em>. <ul>li Sementara dalam <status em>Started</em>, mesin pemutar internal memanggil pengguna yang disediakan onBufferingUpdateListener.onBufferingUpdate() metode panggilan balik jika OnBufferingUpdateListener telah didaftarkan sebelumnya melalui #setOnBufferingUpdateListener(OnBufferingUpdateListener)
.>< Panggilan balik ini memungkinkan aplikasi untuk melacak status buffering saat streaming audio/video.<Panggilan /li><li #start()
>tidak berpengaruh pada objek MediaPlayer yang sudah dalam <status memulai></em.<>Pemutaran /li></ul></li li><>dapat dijeda dan dihentikan, dan posisi pemutaran saat ini dapat disesuaikan. Pemutaran dapat dijeda melalui #pause()
. Saat panggilan untuk #pause()
kembali, objek MediaPlayer memasuki <status dijeda></em>. Perhatikan bahwa transisi dari <status mulai<>/em> ke <status em>Dijeda</em> dan sebaliknya terjadi secara asinkron di mesin pemutar. Mungkin perlu waktu sebelum status diperbarui dalam panggilan ke #isPlaying()
, dan bisa berupa sejumlah detik dalam kasus konten yang dialirkan. <Panggilan #start()
ul><li>untuk melanjutkan pemutaran untuk objek MediaPlayer yang dijeda, dan posisi pemutaran yang dilanjutkan sama dengan tempat pemutaran dijeda. Ketika panggilan untuk #start()
kembali, objek MediaPlayer yang dijeda kembali ke <status mulai></em.<>Panggilan /li><li #pause()
>tidak berpengaruh pada objek MediaPlayer yang sudah dalam <status dijeda></em.<>Panggilan /li>/ul></li li>><menghentikan pemutaran #stop()
dan menyebabkan MediaPlayer di <em>Dimulai</em>, <em>Dijeda</em>, <em>Disiapkan </em> atau <em>Status PlaybackCompleted</em> untuk memasuki <status dihentikan></em>.< <ul>li Sekali dalam <status dihentikan></em>, pemutaran tidak dapat dimulai sampai #prepare()
atau #prepareAsync()
dipanggil untuk mengatur objek MediaPlayer ke <status disiapkan<>/em> lagi.<><Panggilan /li><li>tidak berpengaruh pada objek MediaPlayer yang sudah dalam>< status Dihentikan</em>.<#stop()
/li></ul<>/li><>Posisi pemutaran dapat disesuaikan dengan panggilan ke #seekTo(long, int)
. <ul><li>Meskipun panggilan asinkron #seekTo(long, int)
segera kembali, operasi pencarian aktual mungkin memakan waktu cukup lama untuk diselesaikan, terutama untuk audio/video yang di-streaming. Ketika operasi pencarian aktual selesai, mesin pemutar internal memanggil pengguna yang disediakan onSeekComplete.onSeekComplete() jika OnSeekCompleteListener telah didaftarkan sebelumnya melalui #setOnSeekCompleteListener(OnSeekCompleteListener)
.</li><li>Harap dicatat bahwa #seekTo(long, int)
juga dapat dipanggil di status lain, seperti <em>Disiapkan</em>, <em>Dijeda</em> dan <em>PlaybackCompleted </em> state. Ketika #seekTo(long, int)
dipanggil dalam status tersebut, satu bingkai video akan ditampilkan jika streaming memiliki video dan posisi yang diminta valid. </li><Li>Selain itu, posisi pemutaran aktual saat ini dapat diambil dengan panggilan ke #getCurrentPosition()
, yang berguna untuk aplikasi seperti pemutar Musik yang perlu melacak kemajuan pemutaran.</li>/ul<>/li li><>Ketika pemutaran mencapai akhir streaming, pemutaran selesai.< <ul>li Jika mode perulangan sedang diatur ke <var>true</var> dengan #setLooping(boolean)
, objek MediaPlayer akan tetap dalam <status memulai></em>.<></li>li Jika mode perulangan diatur ke <var>false </var>, mesin pemutar memanggil metode panggilan balik yang disediakan pengguna, OnCompletion.onCompletion(), jika OnCompletionListener didaftarkan sebelumnya melalui #setOnCompletionListener(OnCompletionListener)
.>< Pemanggilan sinyal panggilan balik bahwa objek sekarang dalam <status em> PlaybackCompleted</em> .</li><li>Sementara dalam <status em>PlaybackCompleted</em> , panggilan #start()
dapat memulai ulang pemutaran dari awal sumber audio/video.</li></ul>
"Valid_and_Invalid_States"><h3>Status< valid dan tidak valid/h3>
<table border="0" cellspacing="0" cellpadding="0">tr><td>Method Name </p></td td<>>Valid States </p></td td>><Invalid States </p></td><td>Comments </p></td></tr tr><><td>attachAuxEffect </p></td td><>{Initialized, Disiapkan, Dimulai, Dijeda, Dihentikan, PlaybackCompleted}</p></td<>td>{Idle, Error}</p/><< td><td>Metode ini harus dipanggil setelah setDataSource. Memanggilnya tidak mengubah status objek. </p></td></tr><tr><td>getAudioSessionId </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr><tr><td>getCurrentPosition </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stop, PlaybackCompleted}</p></td><td>{Error}</p></td td>><Berhasil memanggil metode ini dalam keadaan valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>. </p></td></tr tr><<>td>getDuration </p></td><td>{Prepared, Started, Jeused, Stop, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td td>><Berhasil memanggil metode ini dalam keadaan valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>. </p></td></tr><tr><td>getVideoHeight </p></td><td>{Idle, Initialized, Prepared, Started, Jeused, Stop, PlaybackCompleted}</p></td><td>{Error}</p></td td>><Berhasil memanggil metode ini dalam status valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>. </p></td></tr><tr><td>getVideoWidth </p></td><td>{Idle, Initialized, Prepared, Started, Jeused, Stop, PlaybackCompleted}</p></td><td>{Error}</p></td td>><Berhasil memanggil metode ini dalam status valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>. </p></td></tr><tr><td>isPlaying </p></td><td>{Idle, Initialized, Prepared, Started, Jeused, Stop, PlaybackCompleted}</p></td><td>{Error}</p></td td>><Berhasil memanggil metode ini dalam status valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>. </p></td></tr tr><><td>jeda </p></td><td>{Started, Jeda, PlaybackCompleted}</p></td td>><{Idle, Initialized, Prepared, Stop, Error}</p></td<>td>Berhasil memanggil metode ini dalam status valid mentransfer objek ke <status em>Jeda</em.> Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>.</p></td></tr tr><<>td>prepare </p></td><td>{Initialized, Stopped}</p></td><td>{Idle, Prepared, Started, Jeda, PlaybackCompleted, Error}</p></td><td>Berhasil memanggil metode ini dalam status valid mentransfer objek ke <status em>Prepared</em.> Memanggil metode ini dalam keadaan tidak valid melempar IllegalStateException.</p></td></tr tr><<>td>prepareAsync </p></td><td>{Initialized, Stopped}</p></td><td>{Idle, Prepared, Started, Jeda, PlaybackCompleted, Error}</p></td td>><Berhasil memanggil metode ini dalam status valid mentransfer objek ke <status em>Preparing</em.> Memanggil metode ini dalam keadaan tidak valid melempar IllegalStateException.</p></td></tr tr><<>td>release </p></td td>><any </p></td><td>{}</p></td td>><After #release()
, Anda tidak boleh berinteraksi dengan objek. </p></td></tr tr><><td>reset </p></td><td>{Idle, Initialized, Prepared, Started, Jeused, Stop, PlaybackCompleted, Error}</p></td><td>{}</p></td><td>After #reset()
, objek seperti baru saja dibuat.</p></td></tr tr><<>td>seekTo </p></td><td>{Prepared, Started, Jeused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Stop, Error}</p></td td>><Berhasil memanggil metode ini dalam status valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>. </p></td></tr tr><><td>setAudioAttributes </p></td><td>{Idle, Initialized, Dihentikan, Disiapkan, Dimulai, Dijeda, PlaybackCompleted}</p></td><td>{Error}</p></td td><>Berhasil memanggil metode ini tidak mengubah status. Agar jenis atribut audio target menjadi efektif, metode ini harus dipanggil sebelum prepare() atau prepareAsync().</p></td></tr tr><<>td>setAudioSessionId </p></td><td>{Idle}</p></td><td>{Initialized, Prepared, Started, Paused, Stop, PlaybackCompleted, Error}</p></td><td>Metode ini harus dipanggil dalam status diam karena ID sesi audio harus diketahui sebelum memanggil setDataSource. Memanggilnya tidak mengubah status objek. </p></td></tr tr><><td>setAudioStreamType (tidak digunakan lagi)</p></td<>td>{Idle, Inisialisasi, Dihentikan, Disiapkan, Dimulai, Dijeda, PlaybackCompleted}</p></td<>td>{Error}</p></td td><>Berhasil memanggil metode ini tidak mengubah status. Agar jenis stream audio target menjadi efektif, metode ini harus dipanggil sebelum prepare() atau prepareAsync().</p></td></tr tr><><td>setAuxEffectSendLevel </p></td td>><any</p></td><td>{}</p></td td>><Memanggil metode ini tidak mengubah status objek. </p></td></tr tr><><td>setDataSource </p></td><td>{Idle}</p></td><td>{Initialized, Prepared, Started, Jeda, Stop, PlaybackCompleted, Error}</p></td td><>Berhasil memanggil metode ini dalam status valid mentransfer objek ke <status>Inisialisasi</em.> Memanggil metode ini dalam keadaan tidak valid melempar IllegalStateException.</p></td></tr tr><><td>setDisplay </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam status apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr tr><><td>setSurface </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr tr><><td>setVideoScalingMode </p></td><td>{Initialized, Prepared, Started, Jeda, Stop, PlaybackCompleted}</p></td><td>{Idle, Error}</p></td td<>>Berhasil memanggil metode ini tidak mengubah status.</p></td></tr tr><><td>setLooping </p></td td><>{Idle, Initialized, Stop, Prepared, Started, Jeda, PlaybackCompleted}</p></td<>td>{Error}</p></td td><>Berhasil memanggil metode ini dalam status valid tidak mengubah status. Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>.</p></td></tr tr><><td>isLooping </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr><tr><td>setOnBufferingUpdateListener </p></td td>><any </p></td><td>{}</p></td><td>Metode ini dapat dipanggil dalam status apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr><tr><td>setOnCompletionListener </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr><tr><td>setOnErrorListener </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr><tr><td>setOnPreparedListener </p></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr><tr><td>setOnSeekCompleteListener </p></td td>><any </p></td><td>{}</p></td><td>Metode ini dapat dipanggil dalam status apa pun dan menyebutnya tidak mengubah status objek. </p></td></tr tr><><td>setPlaybackParams</p></td><td>{Initialized, Prepared, Started, Jeda, PlaybackCompleted, Error}</p></td><td>{Idle, Stopped}</p></td td><>Metode ini akan mengubah status dalam beberapa kasus, tergantung pada kapan dipanggil. </p></td></tr tr><><td>setScreenOnWhilePlaying</></td td>><any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan memanggilnya tidak mengubah status objek. </p></td></tr tr><><td>setVolume </p></td><td>{Idle, Inisialisasi, Dihentikan, Disiapkan, Dimulai, Dijeda, PlaybackCompleted}</p></td><td>{Error}</p></td td><>Berhasil memanggil metode ini tidak mengubah status. <tr><td>setWakeMode </p></td td><>any </p></td><td>{}</p></td td>><Metode ini dapat dipanggil dalam keadaan apa pun dan memanggilnya tidak mengubah status objek.</p></td></tr tr><><td>start </p></td><td>{Prepared, Started, Jeused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Stop, Error}</p></td><td>Berhasil memanggil metode ini dalam status valid mentransfer objek ke <status memulai></em.> Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>.</p></td></tr><tr><td>stop </p></td><td>{Prepared, Started, Stop, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Berhasil memanggil metode ini dalam status valid mentransfer objek ke <status em>Dihentikan</em.> Memanggil metode ini dalam status tidak valid mentransfer objek ke <>status Em Error</em>.</p></td></tr><tr><td>getTrackInfo </p></td td>><{Prepared, Started, Stop, Jeused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td td>><Berhasil memanggil metode ini tidak mengubah status.</p></td></tr><tr><td>addTimedTextSource </p></td td>><{Prepared, Started, Stop, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td td>><Berhasil memanggil metode ini tidak mengubah status.</p></td></tr tr><><td>selectTrack </p></td><td>{Prepared, Started, Stop, Jeused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td td>><Berhasil memanggil metode ini tidak mengubah status.</p></td></tr tr><<>td>deselectTrack </p></td td><>{Prepared, Started, Stop, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td td>><Berhasil memanggil metode ini tidak mengubah status.</p></td></tr>
</meja>
"Izin"><h3>Izin</h3>
Seseorang mungkin perlu mendeklarasikan elemen izin android.R.styleable#AndroidManifestUsesPermission <uses-permission>
WAKE_LOCK yang sesuai.
Kelas ini memerlukan android.Manifest.permission#INTERNET
izin saat digunakan dengan konten berbasis jaringan.
"Callbacks"><h3>Callbacks</h3>
Aplikasi mungkin ingin mendaftar untuk peristiwa informasi dan kesalahan untuk diberi tahu tentang beberapa pembaruan status internal dan kemungkinan kesalahan runtime selama pemutaran atau streaming. Pendaftaran untuk peristiwa ini dilakukan dengan mengatur listener yang sesuai dengan benar (melalui panggilan ke #setOnPreparedListener(OnPreparedListener) setOnPreparedListener
, , #setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener
, #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener
#setOnCompletionListener(OnCompletionListener) setOnCompletionListener
, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener
, #setOnInfoListener(OnInfoListener) setOnInfoListener
#setOnErrorListener(OnErrorListener) setOnErrorListener
, dll). Untuk menerima panggilan balik masing-masing yang terkait dengan pendengar ini, aplikasi diharuskan untuk membuat objek MediaPlayer pada utas dengan Looper sendiri yang berjalan (utas UI utama secara default memiliki Looper yang berjalan).
Dokumentasi Java untuk android.media.MediaPlayer
.
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.
Konstruktor
MediaPlayer() |
Konstruktor default. |
MediaPlayer(Context) |
Konstruktor default dengan konteks. |
MediaPlayer(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
Bidang
MediaErrorIo |
Kedaluwarsa.
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
MediaErrorMalformed |
Kedaluwarsa.
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
MediaErrorTimedOut |
Kedaluwarsa.
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
MediaErrorUnsupported |
Kedaluwarsa.
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
MediaMimetypeTextSubrip |
Jenis MIME untuk kontainer SubRip (SRT). |
VideoScalingModeScaleToFit |
Kedaluwarsa.
Menentukan mode penskalakan video. |
VideoScalingModeScaleToFitWithCropping |
Kedaluwarsa.
Menentukan mode penskalakan video. |
Properti
AudioSessionId |
Mengembalikan ID sesi audio. -or- Mengatur ID sesi audio. |
Class |
Mengembalikan kelas runtime dari . |
CurrentPosition |
Mendapatkan posisi pemutaran saat ini. |
Duration |
Mendapatkan durasi file. |
Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
IsPlaying |
Memeriksa apakah MediaPlayer sedang diputar. |
JniIdentityHashCode |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
JniPeerMembers |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
Looping |
Memeriksa apakah MediaPlayer mengulang atau tidak mengulang. -or- Mengatur pemutar menjadi perulangan atau non-perulangan. |
Metrics |
Mengembalikan data Metrik tentang pemutar saat ini. |
PeerReference |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
PlaybackParams |
Mendapatkan param pemutaran, yang berisi laju pemutaran saat ini. -or- Mengatur laju pemutaran menggunakan |
PreferredDevice |
Mengembalikan output terpilih yang ditentukan oleh |
RoutedDevice |
|
SyncParams |
Mendapatkan mode sinkronisasi A/V. -or- Mengatur mode sinkronisasi A/V. |
ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. |
Timestamp |
Dapatkan posisi pemutaran saat ini sebagai |
VideoHeight |
Mengembalikan tinggi video. |
VideoWidth |
Mengembalikan lebar video. |
Metode
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler) |
|
AddTimedTextSource(Context, Uri, String) |
Menambahkan file sumber teks berwaktif eksternal (Uri). |
AddTimedTextSource(FileDescriptor, Int64, Int64, String) |
Menambahkan file teks berwaktif eksternal (FileDescriptor). |
AddTimedTextSource(FileDescriptor, String) |
Menambahkan file sumber teks berwaktif eksternal (FileDescriptor). |
AddTimedTextSource(String, String) |
Menambahkan file sumber teks berwaktif eksternal. |
AttachAuxEffect(Int32) |
Melampirkan efek tambahan ke pemutar. |
ClearOnMediaTimeDiscontinuityListener() |
Menghapus listener yang sebelumnya diatur dengan |
ClearOnSubtitleDataListener() |
Menghapus listener yang sebelumnya diatur dengan |
Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
Create(Context, Int32) |
Metode kenyamanan untuk membuat MediaPlayer untuk id sumber daya tertentu. |
Create(Context, Int32, AudioAttributes, Int32) |
Metode pabrik yang sama seperti |
Create(Context, Uri) |
Metode kenyamanan untuk membuat MediaPlayer untuk Uri tertentu. |
Create(Context, Uri, ISurfaceHolder) |
Metode kenyamanan untuk membuat MediaPlayer untuk Uri tertentu. |
Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32) |
Metode pabrik yang sama seperti |
CreateVolumeShaper(VolumeShaper+Configuration) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
DeselectTrack(Int32) |
Batal pilih trek. |
Dispose() |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
Dispose(Boolean) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
GetDrmInfo() |
Mengambil Info DRM yang terkait dengan sumber saat ini |
GetDrmPropertyString(String) |
Baca nilai properti String plugin mesin DRM, dengan string nama properti. |
GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
GetKeyRequest(Byte[], Byte[], String, MediaDrmKeyType, IDictionary<String,String>) |
Pertukaran permintaan/respons utama terjadi antara aplikasi dan server lisensi untuk mendapatkan atau merilis kunci yang digunakan untuk mendekripsi konten terenkripsi. |
GetSelectedTrack(MediaTrackType) |
Mengembalikan indeks trek audio, video, atau subtitel yang saat ini dipilih untuk pemutaran, Nilai yang dikembalikan adalah indeks ke dalam array yang dikembalikan oleh |
GetTrackInfo() |
Mengembalikan array informasi trek. |
JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
Pause() |
Menjeda pemutaran. |
Prepare() |
Menyiapkan pemutar untuk pemutaran, secara sinkron. |
PrepareAsync() |
Mempersiapkan pemutar untuk pemutaran, secara asinkron. |
PrepareDrm(UUID) |
Menyiapkan DRM untuk sumber saat ini |
ProvideKeyResponse(Byte[], Byte[]) |
Respons kunci diterima dari server lisensi oleh aplikasi, lalu disediakan untuk plugin mesin DRM menggunakan provideKeyResponse. |
Release() |
Merilis sumber daya yang terkait dengan objek MediaPlayer ini. |
ReleaseDrm() |
Merilis sesi DRM |
RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener) |
Menghapus yang |
Reset() |
Mereset MediaPlayer ke status yang tidak diinisialisasi. |
RestoreKeys(Byte[]) |
Pulihkan kunci offline yang dipertahankan ke sesi baru. |
SeekTo(Int32) |
Mencari posisi waktu yang ditentukan. |
SeekTo(Int64, MediaPlayerSeekMode) |
Memindahkan media ke posisi waktu yang ditentukan dengan mempertimbangkan mode yang diberikan. |
SelectTrack(Int32) |
Memilih trek. |
SetAudioAttributes(AudioAttributes) |
Mengatur atribut audio untuk MediaPlayer ini. |
SetAudioStreamType(Stream) |
Menyetel tipe aliran audio untuk MediaPlayer ini. |
SetAuxEffectSendLevel(Single) |
Mengatur tingkat pengiriman pemutar ke efek tambahan terlampir. |
SetDataSource(AssetFileDescriptor) |
Mengatur sumber data (AssetFileDescriptor) untuk digunakan. |
SetDataSource(Context, Uri) |
Mengatur sumber data sebagai Uri konten. |
SetDataSource(Context, Uri, IDictionary<String,String>) |
Mengatur sumber data sebagai Uri konten. |
SetDataSource(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
Mengatur sumber data sebagai Uri konten. |
SetDataSource(FileDescriptor) |
Mengatur sumber data (FileDescriptor) yang akan digunakan. |
SetDataSource(FileDescriptor, Int64, Int64) |
Mengatur sumber data (FileDescriptor) yang akan digunakan. |
SetDataSource(MediaDataSource) |
Mengatur sumber data (MediaDataSource) untuk digunakan. |
SetDataSource(String) |
Mengatur sumber data (jalur file atau URL http/rtsp) untuk digunakan. |
SetDataSourceAsync(AssetFileDescriptor) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(Context, Uri) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(FileDescriptor) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(FileDescriptor, Int64, Int64) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(MediaDataSource) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDataSourceAsync(String) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SetDisplay(ISurfaceHolder) |
Mengatur yang |
SetDrmPropertyString(String, String) |
Atur nilai properti String plugin mesin DRM. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle Mengatur properti. (Diperoleh dari Object) |
SetNextMediaPlayer(MediaPlayer) |
Atur MediaPlayer untuk memulai ketika MediaPlayer ini menyelesaikan pemutaran (i. |
SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener) |
Daftarkan panggilan balik yang akan dipanggil ketika status buffer aliran jaringan telah berubah. |
SetOnCompletionListener(MediaPlayer+IOnCompletionListener) |
Daftarkan panggilan balik yang akan dipanggil ketika akhir sumber media telah tercapai selama pemutaran. |
SetOnDrmConfigHelper(MediaPlayer+IOnDrmConfigHelper) |
Daftarkan panggilan balik yang akan dipanggil untuk konfigurasi objek DRM sebelum sesi dibuat. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener) |
Daftarkan panggilan balik yang akan dipanggil saat info DRM diketahui. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler) |
Daftarkan panggilan balik yang akan dipanggil saat info DRM diketahui. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener) |
Daftarkan panggilan balik yang akan dipanggil saat objek DRM disiapkan. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler) |
Daftarkan panggilan balik yang akan dipanggil saat objek DRM disiapkan. |
SetOnErrorListener(MediaPlayer+IOnErrorListener) |
Daftarkan panggilan balik yang akan dipanggil ketika kesalahan telah terjadi selama operasi asinkron. |
SetOnInfoListener(MediaPlayer+IOnInfoListener) |
Daftarkan panggilan balik yang akan dipanggil saat info/peringatan tersedia. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener) |
Mengatur pendengar yang akan dipanggil ketika penghentian waktu media ditemui. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler) |
Mengatur pendengar yang akan dipanggil ketika penghentian waktu media ditemui. |
SetOnPreparedListener(MediaPlayer+IOnPreparedListener) |
Daftarkan panggilan balik yang akan dipanggil ketika sumber media siap untuk diputar. |
SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener) |
Daftarkan panggilan balik yang akan dipanggil ketika operasi pencarian telah selesai. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener) |
Mengatur pendengar yang akan dipanggil saat trek subtitel memiliki data baru yang tersedia. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler) |
Mengatur pendengar yang akan dipanggil saat trek subtitel memiliki data baru yang tersedia. |
SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener) |
Daftarkan panggilan balik yang akan dipanggil saat trek yang dipilih memiliki metadata berwaktu yang tersedia. |
SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener) |
Daftarkan panggilan balik yang akan dipanggil saat teks berwaktu tersedia untuk ditampilkan. |
SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener) |
Daftarkan panggilan balik yang akan dipanggil saat ukuran video diketahui atau diperbarui. |
SetPreferredDevice(AudioDeviceInfo) |
Menentukan perangkat audio (melalui |
SetScreenOnWhilePlaying(Boolean) |
Kontrol apakah kita harus menggunakan SurfaceHolder yang terpasang untuk menjaga layar tetap aktif saat pemutaran video terjadi. |
SetSurface(Surface) |
Mengatur untuk |
SetVideoScalingMode(VideoScalingMode) |
Mengatur mode penskalakan video. |
SetVolume(Single, Single) |
Mengatur volume pada pemutar ini. |
SetWakeMode(Context, WakeLockFlags) |
Atur perilaku manajemen daya tingkat rendah untuk MediaPlayer ini. |
Start() |
Memulai atau melanjutkan pemutaran. |
Stop() |
Menghentikan pemutaran setelah pemutaran dimulai atau dijeda. |
ToArray<T>() |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
UnregisterFromRuntime() |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu. (Diperoleh dari Object) |
Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu. (Diperoleh dari Object) |
Acara
BufferingUpdate |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
Completion |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
DrmInfoEvent |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
DrmPrepared |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
Error |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
Info |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
MediaTimeDiscontinuity |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
Prepared |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
RoutingChanged |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SeekComplete |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
SubtitleData |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
TimedMetaDataAvailable |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
TimedText |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
VideoSizeChanged |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
Implementasi Antarmuka Eksplisit
IJavaPeerable.Disposed() |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
IJavaPeerable.Finalized() |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
IJavaPeerable.JniManagedPeerState |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. (Diperoleh dari Object) |
Metode Ekstensi
JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android. |
JavaCast<TResult>(IJavaObject) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |
GetJniTypeName(IJavaPeerable) |
Kelas MediaPlayer dapat digunakan untuk mengontrol pemutaran file audio/video dan streaming. |