MediaPlayer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.
[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
- Наследование
- Атрибуты
- Реализации
Комментарии
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.
MediaPlayer не является потокобезопасной. Создание и весь доступ к экземплярам проигрывателя должны находиться в одном потоке. При регистрации обратных вызовов поток должен иметь Looper.
Здесь рассматриваются следующие темы: <ol><li>State Diagram<li>Valid and Invalid States<li>Permissions<li>Register информационные и обратные вызовы< ошибок/ol>
<div class="special reference"><h3>Developer Guides</h3>
Дополнительные сведения об использовании MediaPlayer см. в руководстве разработчика по воспроизведению мультимедиа .
</Div>
"StateDiagram"><h3>State Diagram</h3>
Управление воспроизведением звуковых и видеофайлов и потоков осуществляется как конечный автомат. На следующей схеме показан жизненный цикл и состояния объекта MediaPlayer, управляемого поддерживаемыми операциями управления воспроизведением. Овалы представляют состояния, в котором может находиться объект MediaPlayer. Дуги представляют операции управления воспроизведением, которые управляют переходом состояния объекта. Существует два типа дуг. Дуги с одной стрелкой представляют синхронные вызовы методов, а дуги с двойной стрелкой — асинхронные вызовы методов.
<img src=".. /.. /.. /images/mediaplayer_state_diagram.gif" alt="MediaPlayer State diagram" border="0" />
На этой схеме состояний видно, что объект MediaPlayer имеет следующие состояния:
<ul>li Если объект MediaPlayer только что создан с помощью new
или после #reset()
вызова, он находится в <состоянии em>Idle</em>, а после #release()
вызова он находится в <состоянии em>End</em>.>< Между этими двумя состояниями находится жизненный цикл объекта MediaPlayer. <ul><li>Существует незначительное, но важное различие между вновь созданным объектом MediaPlayer и объектом MediaPlayer после #reset()
вызова . Ошибка программирования заключается в вызове таких методов, как #getCurrentPosition()
, #getDuration()
, #getVideoHeight()
, #setAudioAttributes(AudioAttributes)
#getVideoWidth()
, #setLooping(boolean)
, , #setVolume(float, float)
, #pause()
, #stop()
#start()
, , #prepare()
#seekTo(long, int)
или #prepareAsync()
в <состоянии em>Idle</em> в обоих случаях. Если какой-либо из этих методов вызывается сразу после создания объекта MediaPlayer, предоставленный пользователем метод обратного вызова OnErrorListener.onError() не будет вызываться внутренним обработчиком проигрывателя, а состояние объекта остается неизменным; но если эти методы вызываются сразу после #reset()
, предоставленный пользователем метод обратного вызова OnErrorListener.onError() будет вызван внутренним обработчиком проигрывателя, а объект будет передан <в состояние em>Error</em> . </li><li li>Необходимо сохранить ссылку на экземпляр MediaPlayer, чтобы предотвратить сборку мусора. Если экземпляр MediaPlayer собирает мусор, #release
будет вызван метод , что приведет к остановке воспроизведения. <Li>Необходимо вызвать после #release()
завершения использования экземпляра для освобождения полученных ресурсов, таких как память и кодеки. После вызова #release
больше не нужно взаимодействовать с выпущенным экземпляром. <Объекты li>MediaPlayer, созданные с помощью new
, находятся в <состоянии em>Idle</em>, а созданные с помощью одного из перегруженных удобных create
методов — em>< NOT</em> в <состоянии em>Idle</em>. На самом деле объекты находятся в <состоянии em>Prepared</em> , если создание с помощью create
метода выполнено успешно. </li></ul></li><li>. Как правило, некоторые операции управления воспроизведением могут завершиться сбоем из-за различных причин, таких как неподдерживаемый формат аудио/видео, плохое чередование аудио/видео, слишком высокое разрешение, время ожидания потоковой передачи и т. н. Таким образом, отчеты об ошибках и восстановление являются важной проблемой в этих обстоятельствах. Иногда из-за ошибок программирования также может происходить вызов операции управления воспроизведением в недопустимом состоянии. При всех этих ошибках подсистема внутреннего проигрывателя вызывает предоставленный пользователем метод OnErrorListener.onError(), если onErrorListener был предварительно зарегистрирован через #setOnErrorListener(android.media.MediaPlayer.OnErrorListener)
. <ul>li Важно отметить, что после возникновения ошибки объект MediaPlayer переходит в <состояние em>Error</em> (за исключением указанного выше), даже если прослушиватель ошибок не был зарегистрирован приложением.<></li><li li>Для повторного использования объекта MediaPlayer, который находится в <состоянии em> Error</em> и восстановления после ошибки, #reset()
можно вызвать для восстановления объекта до состояния <em>Idle</em>.</li><li li>Рекомендуется зарегистрировать приложение OnErrorListener для получения уведомлений об ошибках от внутреннего обработчика проигрывателя.</li><li>IllegalStateException вызывается для предотвращения ошибок программирования, таких как вызов #prepare()
, #prepareAsync()
или одного из перегруженных setDataSource
методов в недопустимом состоянии. </li>/ul<>/li<>li>Calling #setDataSource(FileDescriptor)
, или #setDataSource(String)
, или #setDataSource(Context, Uri)
, или #setDataSource(MediaDataSource)
#setDataSource(FileDescriptor, long, long)
передает объект MediaPlayer в <состоянии em>Idle</em> в <состояние em>Initialized</em.>< <ul><li>Исключение IllegalStateException возникает при вызове метода setDataSource() в любом другом состоянии.</li><li>рекомендуется всегда искать IOException
IllegalArgumentException
и которые могут возникать из перегруженных setDataSource
методов.</li></ul></li<>li>Объект MediaPlayer должен сначала войти в <состояние em>Prepared</em> перед началом воспроизведения. <ul>li. Существует два способа (синхронный и асинхронный) <достижения состояния em>Prepared</em>: вызов #prepare()
(синхронный), который передает объект <в состояние em>Prepared</em> после возврата вызова метода, или вызов #prepareAsync()
(асинхронный), который сначала передает объект в <em>Preparing</em>>< состояние после возврата вызова (который происходит почти сразу), в то время как внутренний обработчик проигрывателя продолжает работать над остальной частью подготовительных работ до тех пор, пока подготовительные работы не будут завершены. После завершения подготовки или при #prepare()
возвращении вызова подсистема внутреннего проигрывателя вызывает предоставленный пользователем метод обратного вызова onPrepared() интерфейса OnPreparedListener, если OnPreparedListener предварительно зарегистрирован через #setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)
.</li><li>li Важно отметить, что <состояние em>Preparing</em> является временным, а поведение вызова любого метода с побочным эффектом, пока объект MediaPlayer находится в <состоянии em>Preparing</em>, не определено.</li><li li>Исключение IllegalStateException возникает при #prepare()
вызове или #prepareAsync()
в любом другом состоянии.</li><li li>. В <состоянии em>Prepared</em> такие свойства, как громкость звука и звука, screenOnTimePlaying, можно настроить цикл, вызвав соответствующие методы set.</li></ul<>/li><li>Чтобы начать воспроизведение, #start()
необходимо вызвать . После #start()
успешного возврата объект MediaPlayer находится в <состоянии em>Started</em> . #isPlaying()
можно вызвать, чтобы проверить, находится ли объект MediaPlayer в <состоянии em>Started</em> . <ul>li В состоянии em>Started</em> подсистема внутреннего проигрывателя вызывает метод обратного <вызова OnBufferingUpdateListener.onBufferingUpdate(), если OnBufferingUpdateListener был предварительно зарегистрирован через #setOnBufferingUpdateListener(OnBufferingUpdateListener)
.>< Этот обратный вызов позволяет приложениям отслеживать состояние буферизации во время потоковой передачи звука или видео.<Вызов /li><li>не влияет на объект MediaPlayer, который уже находится в <состоянии em>Started</em>.<#start()
/li></ul></li><li>воспроизведение можно приостановить и остановить, а текущую позицию воспроизведения можно настроить. Воспроизведение можно приостановить с помощью #pause()
. Когда возвращается #pause()
вызов , объект MediaPlayer переходит в <состояние em>Paused</em> . Обратите внимание, что переход из <состояния em>Started</em> в <состояние em>Paused</em> и наоборот происходит асинхронно в обработчике проигрывателя. Обновление состояния в вызовах #isPlaying()
может занять некоторое время, а в случае потокового содержимого это может занять несколько секунд. <ul><li>Вызывается #start()
для возобновления воспроизведения для приостановленного объекта MediaPlayer, и позиция возобновления воспроизведения совпадает с положением, где оно было приостановлено. Когда вызов возвращается#start()
, приостановленный объект MediaPlayer возвращается в <состояние запущено>< или em>.<Вызов /li><li>не влияет на объект MediaPlayer, который уже находится в <состоянии em>Paused</em>.<#pause()
Вызов /li></ul></li><li>останавливает воспроизведение и приводит к тому, что MediaPlayer в <состоянии em>Started</em>, <em>Paused</em>, <em>Prepared </em> или <em>PlaybackCompleted</em> переходит <в состояние em>Stopped</em>.#stop()
<ul>li После того, как в <состоянии em>Stopped</em> воспроизведение не может быть запущено до тех пор, пока #prepare()
не будут вызваны или #prepareAsync()
не будут вызваны, чтобы снова задать для объекта <MediaPlayer состояние em>Prepared</em>.<><Вызов /li><li>не влияет на объект MediaPlayer, который уже находится в <состоянии em>Stopped</em>.<#stop()
/li>/ul<>/li<>li>Положение воспроизведения можно настроить с помощью вызова #seekTo(long, int)
.< <ul><li>Хотя алинхронный #seekTo(long, int)
вызов возвращается сразу же, фактическая операция поиска может занять некоторое время, особенно для аудио/ видео потоковой передачи. После завершения фактической операции поиска подсистема внутреннего проигрывателя вызывает пользователь, предоставленный onSeekComplete.onSeekComplete(), если OnSeekCompleteListener был предварительно зарегистрирован через #setOnSeekCompleteListener(OnSeekCompleteListener)
.</li><li li>. Обратите внимание, что #seekTo(long, int)
также может вызываться в других состояниях, таких как <em>Prepared</em>, <em>Paused</em> и <em>PlaybackCompleted </em> state. При #seekTo(long, int)
вызове в этих состояниях будет отображаться один видеокадр, если в потоке есть видео и запрошенная позиция является допустимой. </li><li li>Кроме того, фактическую текущую позицию воспроизведения можно получить с помощью вызова #getCurrentPosition()
, что полезно для таких приложений, как музыкальный проигрыватель, которым необходимо отслеживать ход воспроизведения.</li></ul></li><li>Когда воспроизведение достигает конца потока, воспроизведение завершается. <ul>li Если для режима цикла было задано значение <var>true</var> с #setLooping(boolean)
, объект MediaPlayer должен оставаться в <состоянии em>Started</em>.<></li><li li>. Если для режима цикла задано значение <var>false </var>, подсистема проигрывателя вызывает предоставленный пользователем метод обратного вызова OnCompletion.onCompletion(), если OnCompletionListener предварительно зарегистрирован через #setOnCompletionListener(OnCompletionListener)
. Вызов обратного вызова сигнализирует о том, что объект теперь находится в <состоянии em> PlaybackCompleted</em> .</li><li li>В <состоянии em>PlaybackCompleted</em> вызов #start()
может перезапустить воспроизведение с начала источника звука или видео.</li></ul>
"Valid_and_Invalid_States"><h3>Допустимое и недопустимое состояния</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, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Error}</p/><><< td><td td>Этот метод должен вызываться после setDataSource. Его вызов не изменяет состояние объекта. </p></td></tr><tr><td>getAudioSessionId </p></td><td>any </p></td><td>{}</p></td><td>Этот метод можно вызывать в любом состоянии и не изменяет состояние объекта. </p></td></tr tr><><td>getCurrentPosition </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td<>td>{Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>. </p></td></tr tr><><td>getDuration </p></td<>td>{Prepared, Startedd, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>. </p></td></tr><tr><td>getVideoHeight </p></td<>td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>. </p></td></tr><tr><td>getVideoWidth </p></td<>td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>. </p></td></tr><><td>isPlaying </p></td<>td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>. </p></td></tr><<>td>pause </p></td<>td>{Started, Paused, PlaybackCompleted}</p></td<>td>{Idle, Initialized, Prepared, Stopped, Error}</p></td<>td>Успешный вызов этого метода в допустимом состоянии передает объект <в состояние em>Paused</em.> При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>.</p></td></tr<>td>><prepare </p></td<>td>{Initialized, Stopped}</p></td><td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td<>td>Успешный вызов этого метода в допустимом состоянии передает объект <в состояние em>Prepared</em.> Вызов этого метода в недопустимом состоянии вызывает исключение IllegalStateException.</p></td></tr><td><>prepareAsync </p></td<>td>{Initialized, Stopped}</p></td><td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td<>td>Успешный вызов этого метода в допустимом состоянии передает объект <в состояние em>Prepare</em.> Вызов этого метода в недопустимом состоянии вызывает исключение IllegalStateException.</p></td></tr><td>><release </p></td><td>any </p></td><td>{}</p></td<>td>После #release()
, не следует взаимодействовать с объектом . </p></td></tr><td><>reset </p></td<>td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>{}</p></td><td>После #reset()
объект похож на только что созданный.</p></td></tr><td><>seekTo </p></td<>td>{Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Stopped, Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние ошибки< или>em>. </p></td></tr><tr><td>setAudioAttributes </p></td<>td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>Успешный вызов этого метода не изменяет состояние. Чтобы целевой тип звуковых атрибутов стал эффективным, этот метод необходимо вызвать перед prepare() или prepareAsync().</p></td></tr><td><>setAudioSessionId </p></td<>td>{Idle}</p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>Этот метод должен вызываться в состоянии простоя, так как идентификатор звукового сеанса должен быть известен перед вызовом setDataSource. Его вызов не изменяет состояние объекта. </p></td></tr tr><><td>setAudioStreamType (не рекомендуется)</p></td><td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td<>td>{Error}</p></td><td>Успешный вызов этого метода не изменяет состояние. Чтобы целевой тип аудиопотока стал эффективным, этот метод необходимо вызвать перед prepare() или prepareAsync().</p></td></tr><tr><td>setAuxEffectSendLevel </p></td><td>any</p></td><td>{}</p></td><td>. Вызов этого метода не изменяет состояние объекта. </p></td></tr>><<td>setDataSource </p></td<>td>{Idle}</p></td<>td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td TD>Успешный вызов этого метода в допустимом состоянии передает объект <в состояние em>Initialized</em.> Вызов этого метода в недопустимом состоянии вызывает исключение IllegalStateException.</p></td></tr><td>><setDisplay </p></td<>td>any </p></td><td>{}</p></td><td>. Этот метод можно вызвать в любом состоянии и не изменяет состояние объекта. </p></td></tr<>tr><td>setSurface </p></td><td>any </p></td><td>{}</p></td><td>Этот метод можно вызвать в любом состоянии, и его вызов не изменяет состояние объекта. </p></td></tr<>tr><td>setVideoScalingMode </p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Error}</p></td<>td>Успешный вызов этого метода не изменяет состояние.</p></td></tr<>td><>setLooping </p></td<>td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>Успешный вызов этого метода в допустимом состоянии не изменяет состояние. При вызове этого метода в недопустимом состоянии объект передается в <состояние em>Error</em>.</p></td></tr<><>td>isLooping </p></td<>td>any </p></td><td>{}</p></td><td>. Этот метод можно вызывать в любом состоянии и не изменяет состояние объекта. </p></td></tr><td>><setOnBufferingUpdateListener </p></td<>td>any </p></td><td>{}</p></td><td>Этот метод можно вызвать в любом состоянии, и его вызов не изменяет состояние объекта. </p></td></tr><td><>setOnCompletionListener </p></td<>td>any </p></td><td>{}</p/td td/p></td><td>Этот метод может вызываться в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr<>td><>setOnErrorListener </p></td<>td>any </p></td><td>{}</p/td td/p></td><>. Этот метод может вызываться в любом состоянии и не изменяет состояние объекта. </p></td></tr<>td><>setOnPreparedListener </p></td<>td>any </p></td><td>{}</p/td td/p></td><>. Этот метод может вызываться в любом состоянии и не изменяет состояние объекта. </p></td></tr><td>><setOnSeekCompleteListener </p></td<>td>any </p></td><td>{}</p></td><td>. Этот метод может вызываться в любом состоянии и не изменяет состояние объекта. </p></td></tr><td><>setPlaybackParams</p></td><td>{Initialized, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td<>td>{Idle, Stopped}</p></td><td>Этот метод в некоторых случаях изменяет состояние в зависимости от времени вызова. </p></td></tr<>td><>setScreenOnTimePlaying</></td<>td>any </p></td><td>{}</p/td td/p></td><>. Этот метод может вызываться в любом состоянии и не изменяет состояние объекта. </p></td></tr<>td><>setVolume </p></td<>td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>Успешный вызов этого метода не изменяет состояние. <tr td>setWakeMode </p></td><td>any </p></td><td>{}</p></td><td>Этот метод может вызываться в любом состоянии и его вызов не изменяет состояние объекта.<></p></td></tr<>td>><start </p></td<>td>{Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Stopped, Error}</p></td<>td>Успешный вызов этого метода в допустимом состоянии передает объект <в состояние em>Started</em.> При вызове этого метода в недопустимом состоянии объект передается в <состояние em>Error</em>.</p></td></tr<>td><>stop </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td<>td>{Idle, Initialized, Error}</p></td<>td>Успешный вызов этого метода в допустимом состоянии передает объект <в состояние em>Stopped</em.> При вызове этого метода в недопустимом состоянии объект передается в <состояние em>Error</em>.</p></td></tr tr><><td>getTrackInfo </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td<>td>{Idle, Initialized, Error}</p></td<>td>Успешный вызов этого метода не изменяет состояние.</p></td></tr><td>><addTimedTextSource </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>td>Успешный вызов этого метода не изменяет состояние.</p></td></tr>><<td>selectTrack </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>td>Успешный вызов этого метода не изменяет состояние.</p></td></tr>><<td>deselectTrack </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>td>Успешный вызов этого метода не изменяет состояние.</p></td></tr>
</Таблице>
"Разрешения"><h3>Разрешения</h3>
Может потребоваться объявить соответствующий элемент разрешения android.R.styleable#AndroidManifestUsesPermission <uses-permission>
WAKE_LOCK.
Для этого класса требуется android.Manifest.permission#INTERNET
разрешение при использовании с сетевым содержимым.
"Обратные вызовы"><h3>Обратные вызовы</h3>
Приложения могут захотеть зарегистрироваться для получения информационных событий и событий ошибок, чтобы получать информацию о некоторых внутренних обновлениях состояния и возможных ошибках среды выполнения во время воспроизведения или потоковой передачи. Регистрация для этих событий выполняется путем правильной настройки соответствующих прослушивателей (с помощью вызовов #setOnPreparedListener(OnPreparedListener) setOnPreparedListener
, #setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener
, , #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener
, #setOnCompletionListener(OnCompletionListener) setOnCompletionListener
#setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener
, #setOnInfoListener(OnInfoListener) setOnInfoListener
#setOnErrorListener(OnErrorListener) setOnErrorListener
, и т. д.). Чтобы получить соответствующий обратный вызов, связанный с этими прослушивателями, приложения должны создавать объекты MediaPlayer в потоке с собственным запущенным looper (main поток пользовательского интерфейса по умолчанию имеет запущенный Looper).
Документация по Java для android.media.MediaPlayer
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.
Конструкторы
MediaPlayer() |
Конструктор по умолчанию. |
MediaPlayer(Context) |
Конструктор по умолчанию с контекстом. |
MediaPlayer(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Поля
MediaErrorIo |
Устаревшие..
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
MediaErrorMalformed |
Устаревшие..
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
MediaErrorTimedOut |
Устаревшие..
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
MediaErrorUnsupported |
Устаревшие..
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
MediaMimetypeTextSubrip |
Тип MIME для контейнера SubRip (SRT). |
VideoScalingModeScaleToFit |
Устаревшие..
Задает режим масштабирования видео. |
VideoScalingModeScaleToFitWithCropping |
Устаревшие..
Задает режим масштабирования видео. |
Свойства
AudioSessionId |
Возвращает идентификатор звукового сеанса. -или- Задает идентификатор звукового сеанса. |
Class |
Возвращает класс среды выполнения данного объекта |
CurrentPosition |
Возвращает текущую позицию воспроизведения. |
Duration |
Возвращает длительность файла. |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsPlaying |
Проверяет, воспроизводит ли MediaPlayer. |
JniIdentityHashCode |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
JniPeerMembers |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
Looping |
Проверяет, является ли MediaPlayer цикливным или не циклически. -или- Задает для проигрывателя циклическое или не зацикливание. |
Metrics |
Возвращает данные метрик о текущем игроке. |
PeerReference |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
PlaybackParams |
Возвращает параметры воспроизведения, содержащие текущую скорость воспроизведения. -или- Задает скорость воспроизведения с помощью |
PreferredDevice |
Возвращает выбранные выходные данные, заданные параметром |
RoutedDevice |
Возвращает объект , определяющий текущую |
SyncParams |
Возвращает режим синхронизации A/V. -или- Задает режим синхронизации A/V. |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Timestamp |
Получение текущей позиции воспроизведения в |
VideoHeight |
Возвращает высоту видео. |
VideoWidth |
Возвращает ширину видео. |
Методы
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler) |
|
AddTimedTextSource(Context, Uri, String) |
Добавляет внешний исходный текстовый файл (URI) с временным временем. |
AddTimedTextSource(FileDescriptor, Int64, Int64, String) |
Добавляет внешний текстовый файл с временным временем (FileDescriptor). |
AddTimedTextSource(FileDescriptor, String) |
Добавляет внешний исходный текстовый файл с временным временем (FileDescriptor). |
AddTimedTextSource(String, String) |
Добавляет внешний исходный текстовый файл с временным временем. |
AttachAuxEffect(Int32) |
Присоединяет к проигрывателю вспомогательный эффект. |
ClearOnMediaTimeDiscontinuityListener() |
Очищает прослушиватель, ранее заданный с помощью |
ClearOnSubtitleDataListener() |
Очищает прослушиватель, ранее заданный с |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Create(Context, Int32) |
Удобный метод для создания MediaPlayer для заданного идентификатора ресурса. |
Create(Context, Int32, AudioAttributes, Int32) |
Тот же метод фабрики, |
Create(Context, Uri) |
Удобный метод для создания MediaPlayer для заданного универсального кода ресурса (URI). |
Create(Context, Uri, ISurfaceHolder) |
Удобный метод для создания MediaPlayer для заданного универсального кода ресурса (URI). |
Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32) |
Тот же метод фабрики, |
CreateVolumeShaper(VolumeShaper+Configuration) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
DeselectTrack(Int32) |
Отмените выбор дорожки. |
Dispose() |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
Dispose(Boolean) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
Equals(Object) |
Указывает, равен ли какой-то другой объект этому объекту. (Унаследовано от Object) |
GetDrmInfo() |
Извлекает сведения о DRM, связанные с текущим источником. |
GetDrmPropertyString(String) |
Чтение значения свойства String подключаемого модуля обработчика DRM с учетом строки имени свойства. |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
GetKeyRequest(Byte[], Byte[], String, MediaDrmKeyType, IDictionary<String,String>) |
Обмен запросами и ответами между приложением и сервером лицензирования для получения или освобождения ключей, используемых для расшифровки зашифрованного содержимого. |
GetSelectedTrack(MediaTrackType) |
Возвращает индекс звуковой, видео- или подзаголовочной дорожки, выбранной для воспроизведения. Возвращаемое значение является индексом массива, возвращаемого методом |
GetTrackInfo() |
Возвращает массив сведений о дорожке. |
JavaFinalize() |
Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект . (Унаследовано от Object) |
Notify() |
Пробуждает один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. (Унаследовано от Object) |
Pause() |
Приостанавливает воспроизведение. |
Prepare() |
Синхронно подготавливает проигрыватель к воспроизведению. |
PrepareAsync() |
Асинхронно подготавливает проигрыватель к воспроизведению. |
PrepareDrm(UUID) |
Подготовка DRM для текущего источника |
ProvideKeyResponse(Byte[], Byte[]) |
Приложение получает ответ ключа от сервера лицензирования, а затем предоставляется в подключаемый модуль обработчика DRM с помощью provideKeyResponse. |
Release() |
Освобождает ресурсы, связанные с этим объектом MediaPlayer. |
ReleaseDrm() |
Освобождает сеанс DRM |
RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener) |
Удаляет объект , |
Reset() |
Сбрасывает MediaPlayer в неинициализированное состояние. |
RestoreKeys(Byte[]) |
Восстановление сохраненных автономных ключей в новом сеансе. |
SeekTo(Int32) |
Ищет указанную позицию времени. |
SeekTo(Int64, MediaPlayerSeekMode) |
Перемещает носитель в указанное положение времени с учетом заданного режима. |
SelectTrack(Int32) |
Выбирает дорожку. |
SetAudioAttributes(AudioAttributes) |
Задает звуковые атрибуты для этого Объекта MediaPlayer. |
SetAudioStreamType(Stream) |
Задает тип аудиопотока для этого Объекта MediaPlayer. |
SetAuxEffectSendLevel(Single) |
Устанавливает уровень отправки проигрывателя на присоединенный вспомогательный эффект. |
SetDataSource(AssetFileDescriptor) |
Задает используемый источник данных (AssetFileDescriptor). |
SetDataSource(Context, Uri) |
Задает источник данных в качестве URI содержимого. |
SetDataSource(Context, Uri, IDictionary<String,String>) |
Задает источник данных в качестве URI содержимого. |
SetDataSource(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
Задает источник данных в качестве URI содержимого. |
SetDataSource(FileDescriptor) |
Задает источник данных (FileDescriptor) для использования. |
SetDataSource(FileDescriptor, Int64, Int64) |
Задает источник данных (FileDescriptor) для использования. |
SetDataSource(MediaDataSource) |
Задает используемый источник данных (MediaDataSource). |
SetDataSource(String) |
Задает источник данных (путь к файлу или URL-адрес http/rtsp) для использования. |
SetDataSourceAsync(AssetFileDescriptor) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(Context, Uri) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(FileDescriptor) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(FileDescriptor, Int64, Int64) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(MediaDataSource) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDataSourceAsync(String) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SetDisplay(ISurfaceHolder) |
Задает объект , используемый |
SetDrmPropertyString(String, String) |
Задайте значение свойства String подключаемого модуля обработчика DRM. |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
SetNextMediaPlayer(MediaPlayer) |
Установите MediaPlayer для запуска после завершения воспроизведения этого MediaPlayer (i. |
SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener) |
Зарегистрируйте обратный вызов, который будет вызываться при изменении состояния буфера сетевого потока. |
SetOnCompletionListener(MediaPlayer+IOnCompletionListener) |
Зарегистрируйте обратный вызов, который будет вызываться при достижении конца источника мультимедиа во время воспроизведения. |
SetOnDrmConfigHelper(MediaPlayer+IOnDrmConfigHelper) |
Зарегистрируйте обратный вызов для настройки объекта DRM перед созданием сеанса. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener) |
Зарегистрируйте обратный вызов, который будет вызываться, когда сведения о DRM известны. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler) |
Зарегистрируйте обратный вызов, который будет вызываться, когда сведения о DRM известны. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener) |
Зарегистрируйте обратный вызов, который будет вызываться при подготовке объекта DRM. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler) |
Зарегистрируйте обратный вызов, который будет вызываться при подготовке объекта DRM. |
SetOnErrorListener(MediaPlayer+IOnErrorListener) |
Зарегистрируйте обратный вызов, который будет вызываться при возникновении ошибки во время асинхронной операции. |
SetOnInfoListener(MediaPlayer+IOnInfoListener) |
Зарегистрируйте обратный вызов, который будет вызываться при наличии сведений или предупреждений. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener) |
Задает прослушиватель, который будет вызываться при обнаружении разрыва времени мультимедиа. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler) |
Задает прослушиватель, который будет вызываться при обнаружении разрыва времени мультимедиа. |
SetOnPreparedListener(MediaPlayer+IOnPreparedListener) |
Зарегистрируйте обратный вызов, который будет вызываться, когда источник мультимедиа готов к воспроизведению. |
SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener) |
Зарегистрируйте обратный вызов, который будет вызываться после завершения операции поиска. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener) |
Задает прослушиватель, который будет вызываться при наличии новых данных в дорожке субтитров. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler) |
Задает прослушиватель, который будет вызываться при наличии новых данных в дорожке субтитров. |
SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener) |
Зарегистрируйте обратный вызов, который будет вызываться, если для выбранной дорожки доступны метаданные по времени. |
SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener) |
Зарегистрируйте обратный вызов, который будет вызываться, когда текст по времени доступен для отображения. |
SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener) |
Зарегистрируйте обратный вызов, который будет вызываться при известном или обновленном размере видео. |
SetPreferredDevice(AudioDeviceInfo) |
Указывает звуковое устройство (через |
SetScreenOnWhilePlaying(Boolean) |
Укажите, следует ли использовать подключенный SurfaceHolder, чтобы экран был включен во время воспроизведения видео. |
SetSurface(Surface) |
Задает объект , используемый |
SetVideoScalingMode(VideoScalingMode) |
Задает режим масштабирования видео. |
SetVolume(Single, Single) |
Задает громкость этого проигрывателя. |
SetWakeMode(Context, WakeLockFlags) |
Задайте низкоуровневый режим управления питанием для этого MediaPlayer. |
Start() |
Запускает или возобновляет воспроизведение. |
Stop() |
Останавливает воспроизведение после запуска или приостановки воспроизведения. |
ToArray<T>() |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
Wait() |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.>< (Унаследовано от Object) |
Wait(Int64) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени. (Унаследовано от Object) |
События
BufferingUpdate |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
Completion |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
DrmInfoEvent |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
DrmPrepared |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
Error |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
Info |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
MediaTimeDiscontinuity |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
Prepared |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
RoutingChanged |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SeekComplete |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
SubtitleData |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
TimedMetaDataAvailable |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
TimedText |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
VideoSizeChanged |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
IJavaPeerable.Finalized() |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
IJavaPeerable.JniManagedPeerState |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. (Унаследовано от Object) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенного средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |
GetJniTypeName(IJavaPeerable) |
Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков. |