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 можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.

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>рекомендуется всегда искать IOExceptionIllegalArgumentException и которые могут возникать из перегруженных 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 &lt;uses-permission&gt; 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

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
CurrentPosition

Возвращает текущую позицию воспроизведения.

Duration

Возвращает длительность файла.

Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsPlaying

Проверяет, воспроизводит ли MediaPlayer.

JniIdentityHashCode

Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.

(Унаследовано от Object)
JniPeerMembers

Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.

Looping

Проверяет, является ли MediaPlayer цикливным или не циклически. -или- Задает для проигрывателя циклическое или не зацикливание.

Metrics

Возвращает данные метрик о текущем игроке.

PeerReference

Класс MediaPlayer можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.

(Унаследовано от Object)
PlaybackParams

Возвращает параметры воспроизведения, содержащие текущую скорость воспроизведения. -или- Задает скорость воспроизведения с помощью PlaybackParams.

PreferredDevice

Возвращает выбранные выходные данные, заданные параметром #setPreferredDevice.

RoutedDevice

Возвращает объект , определяющий текущую AudioDeviceInfo маршрутизацию этого MediaPlayer Примечание. Запрос действителен, только если MediaPlayer в данный момент воспроизводит.

SyncParams

Возвращает режим синхронизации A/V. -или- Задает режим синхронизации A/V.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Timestamp

Получение текущей позиции воспроизведения в MediaTimestampвиде .

VideoHeight

Возвращает высоту видео.

VideoWidth

Возвращает ширину видео.

Методы

AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler)

AudioRouting.OnRoutingChangedListener Добавляет для получения уведомлений об изменениях маршрутизации в этом MediaPlayer.

AddTimedTextSource(Context, Uri, String)

Добавляет внешний исходный текстовый файл (URI) с временным временем.

AddTimedTextSource(FileDescriptor, Int64, Int64, String)

Добавляет внешний текстовый файл с временным временем (FileDescriptor).

AddTimedTextSource(FileDescriptor, String)

Добавляет внешний исходный текстовый файл с временным временем (FileDescriptor).

AddTimedTextSource(String, String)

Добавляет внешний исходный текстовый файл с временным временем.

AttachAuxEffect(Int32)

Присоединяет к проигрывателю вспомогательный эффект.

ClearOnMediaTimeDiscontinuityListener()

Очищает прослушиватель, ранее заданный с помощью#setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener) или #setOnMediaTimeDiscontinuityListener(OnMediaTimeDiscontinuityListener, Handler)

ClearOnSubtitleDataListener()

Очищает прослушиватель, ранее заданный с #setOnSubtitleDataListener(OnSubtitleDataListener) или #setOnSubtitleDataListener(OnSubtitleDataListener, Handler).

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Create(Context, Int32)

Удобный метод для создания MediaPlayer для заданного идентификатора ресурса.

Create(Context, Int32, AudioAttributes, Int32)

Тот же метод фабрики, #create(Context, int) что и но который позволяет указать звуковые атрибуты и идентификатор сеанса, которые будут использоваться новым экземпляром MediaPlayer.

Create(Context, Uri)

Удобный метод для создания MediaPlayer для заданного универсального кода ресурса (URI).

Create(Context, Uri, ISurfaceHolder)

Удобный метод для создания MediaPlayer для заданного универсального кода ресурса (URI).

Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32)

Тот же метод фабрики, #create(Context, Uri, SurfaceHolder) что и но который позволяет указать звуковые атрибуты и идентификатор сеанса, которые будут использоваться новым экземпляром MediaPlayer.

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(), и может использоваться в вызовах или #selectTrack(int)#deselectTrack(int).

GetTrackInfo()

Возвращает массив сведений о дорожке.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Notify()

Пробуждает один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Пробуждает все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
Pause()

Приостанавливает воспроизведение.

Prepare()

Синхронно подготавливает проигрыватель к воспроизведению.

PrepareAsync()

Асинхронно подготавливает проигрыватель к воспроизведению.

PrepareDrm(UUID)

Подготовка DRM для текущего источника

ProvideKeyResponse(Byte[], Byte[])

Приложение получает ответ ключа от сервера лицензирования, а затем предоставляется в подключаемый модуль обработчика DRM с помощью provideKeyResponse.

Release()

Освобождает ресурсы, связанные с этим объектом MediaPlayer.

ReleaseDrm()

Освобождает сеанс DRM

RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener)

Удаляет объект , AudioRouting.OnRoutingChangedListener который был ранее добавлен для получения уведомлений о перенаправлении.

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)

Задает объект , используемый SurfaceHolder для отображения части видео мультимедиа.

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)

Указывает звуковое устройство (через AudioDeviceInfo объект) для маршрутизации выходных данных из этого MediaPlayer.

SetScreenOnWhilePlaying(Boolean)

Укажите, следует ли использовать подключенный SurfaceHolder, чтобы экран был включен во время воспроизведения видео.

SetSurface(Surface)

Задает объект , используемый 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 можно использовать для управления воспроизведением звуковых и видеофайлов и потоков.

Применяется к