Поделиться через


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

Здесь рассматриваются разделы: <ol><li>State Diagram<li>Valid and Invalid State Permissions><li Permissions<li>Register информационной и error callbacks</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" border="0" />

На этой схеме состояния можно увидеть, что объект MediaPlayer имеет следующие состояния:

<ul>li, когда объект MediaPlayer только что создается с помощью new или после #reset() вызова, он находится в <состоянии em>Idle</em>; и после #release() вызова он находится в <состоянии em>End</em>.>< Между этими двумя состояниями является жизненный цикл объекта MediaPlayer. <ul><li>Существует тонкое, но важное различие между вновь созданным объектом MediaPlayer и объектом MediaPlayer после #reset() вызова. Это ошибка программирования для вызова таких методов, как #getCurrentPosition(), #getDuration()#getVideoWidth()#setLooping(boolean)#setVolume(float, float)#setAudioAttributes(AudioAttributes)#pause()#seekTo(long, int)#prepare()#stop()#getVideoHeight()#start()или #prepareAsync() в <состоянии em>Idle</em> для обоих случаев. Если любой из этих методов вызывается сразу после создания объекта MediaPlayer, пользователь предоставил метод обратного вызова OnErrorListener.onError() не будет вызываться внутренним обработчиком проигрывателя, а состояние объекта остается неизменным; но если эти методы вызываются сразу после #reset()этого, пользователь предоставил метод обратного вызова OnErrorListener.onError() будет вызываться внутренним обработчиком проигрывателя, и объект будет передан в <состояние em>Error</em> . </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><>Для повторного использования объекта MediaPlayer, который находится в <состоянии em> Error</em> и восстанавливается после ошибки, #reset() можно вызвать для восстановления объекта в его <состоянии em>Idle</em.<>/li li><>рекомендуется программировать, чтобы приложение зарегистрировалось в OnErrorListener, чтобы искать уведомления об ошибках из внутреннего обработчика проигрывателя.<Вызывается исключение /li><>IllegalStateException, чтобы предотвратить ошибки программирования, такие как вызов#prepare(), #prepareAsync()или один из перегруженных setDataSource методов в недопустимом состоянии. </li>/ul<>/li><>Calling#setDataSource(FileDescriptor), or , or , or #setDataSource(Context, Uri)#setDataSource(String)или , или #setDataSource(MediaDataSource)#setDataSource(FileDescriptor, long, long)или передает объект MediaPlayer в состоянии <em>Idle</em> в <состояние em>Initialized</em.>< <ul><li>An IllegalStateException создается, если setDataSource() вызывается в любом другом состоянии.</li li><>Это хорошая практика программирования, чтобы всегда искать IllegalArgumentException и IOException что может быть вызвано из перегруженных setDataSource методов.<Объект /li></ul></li><>A MediaPlayer должен сначала ввести <состояние em>Prepared</em> перед началом воспроизведения. <ul>li Существует два способа (синхронное и асинхронное) состояние <em>Prepared</em> можно достичь: либо вызов #prepare() (синхронный), который передает объект в состояние em>Prepared</em> после возврата вызова метода, либо вызов #prepareAsync() (асинхронный), который сначала передает объект <<в em>Подготовка</em>>< состояние после возврата вызова (которое происходит почти сразу) в то время как внутренний обработчик проигрывателя продолжает работать над остальной частью работы подготовки до завершения работы подготовки. Когда подготовка завершается или когда #prepare() вызов возвращается, внутренний обработчик проигрывателя вызывает предоставленный пользователем метод обратного вызова onPrepared() интерфейса OnPreparedListener, если onPreparedListener зарегистрирован заранее.#setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)</li li><>Важно отметить, что <состояние em>Подготовки< и эм> является временным состоянием, и поведение вызова любого метода с побочным эффектом, а объект MediaPlayer находится в <состоянии em>Подготовки< и em> не определен.</li><an>IllegalStateException вызывается, если #prepare() или #prepareAsync() вызывается в любом другом состоянии.</li li><>в <состоянии em>Prepared</em>, свойства, такие как громкость звука и звука, screenOnTimePlaying, можно настроить, вызвав соответствующие методы набора.</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>>#start()< не влияет на объект MediaPlayer, который уже находится в <состоянии em>Started</em.<>Воспроизведение /li></ul></li><>может быть приостановлено и остановлено, а текущая позиция воспроизведения может быть изменена. Воспроизведение можно приостановить с помощью #pause(). При возврате вызова #pause() объект MediaPlayer вводит <состояние em>Paused</em> . Обратите внимание, что переход от <состояния em>Started</em> к <состоянию em>Paused</em> и наоборот происходит асинхронно в обработчике проигрывателя. Может потребоваться некоторое время, прежде чем состояние обновляется в вызовах #isPlaying(), и это может быть несколько секунд в случае потокового содержимого. <Вызов ul><li>#start() для возобновления воспроизведения для приостановленного объекта MediaPlayer, и возобновленное положение воспроизведения совпадает с местом приостановки. Когда вызов #start() возвращается, приостановленный объект MediaPlayer возвращается в <состояние em>Started</em>.<Вызов /li>>#pause()< не влияет на объект MediaPlayer, который уже находится в <состоянии em>Paused</em.<>/li>/ul<>/li<>Li>Вызов #stop() останавливает воспроизведение и приводит к тому, что mediaPlayer в <>em Started</em, em Paused</>em>, <<>em>Prepared </em> или <emPlayCompleted</>em>состояние введите <состояние em>Остановлено</em.>< <ul>li Один раз в <состоянии em>Stopped</em> воспроизведение не может быть запущено до тех пор, #prepareAsync() пока #prepare() или вызывается, чтобы задать объект MediaPlayer для <состояния em>Prepared</em> еще раз.<><Вызов /li>>#stop()< не влияет на объект MediaPlayer, который уже находится в <состоянии em>Stopped</em.<>/li>/ul<>/li li><>Положение воспроизведения можно настроить с помощью вызова#seekTo(long, int).< <ul><li>Хотя асинчронный #seekTo(long, int) вызов возвращается сразу, фактическая операция поиска может занять некоторое время, особенно для потоковой передачи звука или видео. После завершения фактической операции поиска внутренний обработчик проигрывателя вызывает пользователя, предоставленного OnSeekComplete.onSeekComplete(), если onSeekCompleteListener был зарегистрирован заранее.#setOnSeekCompleteListener(OnSeekCompleteListener)</li li><>обратите внимание, что #seekTo(long, int) можно также вызывать в других состояниях, таких как <em>Prepared</em>, <em>Paused</em> и <em PlaybackCompleted </em>> State. При #seekTo(long, int) вызове в этих состояниях будет отображаться один видеокадр, если в потоке есть видео, а запрошенная позиция действительна. </li li>><более того, фактическое текущее положение воспроизведения можно получить с вызовом#getCurrentPosition(), который полезно для приложений, таких как музыкальный проигрыватель, который должен отслеживать ход воспроизведения.</li>/ul<>/li li><>, когда воспроизведение достигает конца потока, воспроизведение завершается.< <ul>li, если для режима циклирования задано <значение var true</var>> с#setLooping(boolean), объект MediaPlayer должен оставаться в <состоянии em>Started</em>.<></li li>><, если для режима циклирования задано <значение var>false </var>, подсистема проигрывателя вызывает предоставленный пользователем метод обратного вызова OnCompletion.onCompletion(), если onCompletionListener зарегистрирован заранее.#setOnCompletionListener(OnCompletionListener) Вызов обратного вызова сигнализирует о том, что объект находится в <состоянии em> PlaybackCompleted</em>.</li li><>в>< состоянии em PlaybackCompleted</em> вызов #start() может перезапустить воспроизведение с начала источника звука или видео.</li></ul>

"Valid_and_Invalid_States"><h3 Допустимые и недопустимые состояния</h3>>

<table border="0" cellpacing="0" cellpadding="0">tr td>Method Name </p></>><td td Valid States /p></><>td td invalid States <</p></<>>td Comments </p><></td/tr><<>td>attachAuxEffect </p></>><td td{Initialized, Подготовка, запуск, приостановка, остановка, воспроизведениеcompleted}</p></td td><>{бездействия, ошибка}</p/><><< Td td><>This method должен вызываться после 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, Startedd, Paused, Stopped, PlaybackCompleted}</p/td><td>{Error}</p><></td><>этот метод в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em> . </p></td></tr tr><><td getDuration </p></td><td>>{Prepared, Startedd, Paused, Stopped, PlaybackCompleted}</p></td<>td>{Idle, Initialized, Error}</p></td td td><>Успешное вызов этого метода в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em> . </p></td></tr tr><><td getVideoHeight </p></td><td>>{Idle, Initialized, Startedd, Paused, Paused, PlaybackCompleted}/p/td<>td>{Error}<</p><></td td td><>этот метод в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em> . </p></td></tr tr><><td getVideoWidth </p></td<>td>>{Idle, Initialized, Startedd, Paused, Paused, PlaybackCompleted}</p></td<>td>{Error}</p></td><>этот метод в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em> . </p></td></tr tr><><td isPlaying </p></td<>>td>{Idle, Initialized, Started, Paused, Paused,PlayCompleted}/p></td<>td>{Error}<</p></td><>этот метод в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em> . </p></td></tr tr><><td pause </p></td><td>>{Started, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Prepared, Error}</p></td td td<>>успешное вызов этого метода в допустимом состоянии передает объект в <состояние em>Paused</em.> Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em>.</p></td></tr tr><><td prepare </p></td><td>>{Initialized, Stopped}</><p/td<>td>{Idle, Prepare, Started, Paused, PlaybackCompleted, Error}</p></td td td>><успешное вызов этого метода в допустимом состоянии передает объект <в состояние em>Prepare</em.> Вызов этого метода в недопустимом состоянии вызывает исключение IllegalStateException.</p></td></tr tr>><<td prepareAsync </p></td<>td>>{Initialized, Остановлено}</p></td><>{Idle, Prepare, Started, Paused, PlaybackCompleted, Error}</p></td td td<>>успешное вызов этого метода в допустимом состоянии передает объект <в состояние em>Prepare</em.> Вызов этого метода в недопустимом состоянии вызывает исключение IllegalStateException.</p></td></tr tr>><<td release </p></td>><td>any </p></td><td>{}</p></td<>td after>#release(), вы не должны взаимодействовать с объектом. </p></td></tr tr><><td reset </p></td<>td>>{Idle, Initialized, Started, Paused, Stopped, PlaybackCompleted, Error}</p/td td>{}</p><></td><td td>><After #reset(), как только что создается объект.</p></td></tr tr>><<td seekTo </p></td><td>{Prepared, Started, Paused, PlaybackCompleted}</p></td<>>td>{Idle, Initialized, Остановлено, Error}</p></td td td><>успешное вызов этого метода в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em> . </p></td></tr tr><><td setAudioAttributes </p></td>><>{Idle, Initialized, Stopped, Startedd, Startedd, Paused, PlaybackCompleted}/p></td<>td>{Error}<</p></td td td>><этот метод не изменяет состояние. Чтобы целевой тип звуковых атрибутов стал эффективным, этот метод должен вызываться перед подготовкой () или prepareAsync().</p></td></tr tr><><td setAudioSessionId </p></td>><>{Idle}</p></td><td>{Initialized, Prepared, Startedd, Paused, Stopped, PlaybackCompleted, Error}</p></td td td><>Этот метод должен вызываться в состоянии простоя, так как идентификатор звукового сеанса должен быть известен перед вызовом setDataSource. Вызов не изменяет состояние объекта. </p></td/tr tr>><<td setAudioStreamType (нерекомендуемый)</p></><>td><>{Idle, Initialized, Stopped, Started, Paused, PlaybackCompleted}</p></td<>td>{Error}</p></td td><>успешное вызов этого метода не изменяет состояние. Чтобы целевой тип аудиопотока стал эффективным, этот метод должен вызываться перед подготовкой () или prepareAsync().</p></td></tr tr><><td setAuxEffectSendLevel </p></td>><td>any</p></td><td>{}</p></td td><>, вызывая этот метод, не изменяет состояние объекта. </p></td></tr tr><><td setDataSource </p></td><>td>{Idle}</p></><td td>{Initialized, Started, Paused, Paused, PlaybackCompleted, Error}</p></td<>>успешное вызов этого метода в допустимом состоянии передает объект <в состояние em>Initialized</em.> Вызов этого метода в недопустимом состоянии вызывает исключение IllegalStateException.</p></td></tr 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><>>{Initialized, Startedd, Paused, Paused, PlaybackCompleted}</p></td><td>{Idle, Error}</p></td td td<>>успешное вызов этого метода не изменяет состояние.</p></td></tr tr><><td setLooping </p></td><td>>{Idle, Initialized, Stopped, Started, Startedd, Paused, PlaybackCompleted}</p></td<>td>{Error}</p></td><>этот метод в допустимом состоянии не изменяет состояние. Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em>.</p></td/tr tr>><<td><> isLooping </p></td td><>any </p></td><td>{}</p></td td><>Этот метод можно вызывать в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr><><td>setOnBufferingUpdateListener </p></><>td td any </p></td td>>{}<</p></td td><>Этот метод может вызываться в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr><><td setOnCompletionListener </p></td>><td>any </p></td><td>{}</p></td td><>Этот метод может вызываться в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr><><td setOnErrorListener </p></td>><td>any </p></td><td>{}</p></td td><>Этот метод может вызываться в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr><><td setOnPreparedListener </p></td<>>td>any </p/td<>td>{}</p><></td td><>Этот метод может вызываться в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr><><td setOnSeekCompleteListener </p></<>>td td>any </p></td><td>{}</p></td td><>Этот метод может вызываться в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr>><<td setPlaybackParams</p></<>td td>>{Initialized, Started, Paused,PlayCompleted, Error}</p/td<>td>{Id, Остановлено}</p><></td td td><>Этот метод в некоторых случаях изменит состояние в зависимости от того, когда он вызывается. </p></td></tr tr><><td setScreenOnTimePlaying</></td<>>td>any </p/td<>td>{}</p><></td td><>Этот метод можно вызывать в любом состоянии и вызывать его не изменяет состояние объекта. </p></td></tr tr>><<td setVolume </p></td><td>>{Idle, Initialized, Stopped, Started, Startedd, Paused, PlaybackCompleted}</p/td><td>{Error}</p><></td><>успешное вызов этого метода не изменяет состояние. <tr><td>setWakeMode </p></td td><>any </p/td td>{}</p><></><td><td>Этот метод можно вызывать в любом состоянии и вызывать его не изменяет состояние объекта.</p></td></tr tr>><<td start </p></td><td>>{Prepared, Startedd, PlaybackCompleted}</p></td>>< td{Idle, Initialized, Error}</p></td td td><>успешное вызов этого метода в допустимом состоянии передает объект в <состояние em>< Started/em.> Вызов этого метода в недопустимом состоянии передает объект в <состояние em>Error</em>.</p></td></tr tr>><<td stop </p></td><> td>{Prepared, Startedd, Stopd, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>>успешное вызов этого метода в допустимом состоянии передает объект в <состояние em>Stopd</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 td>><успешное вызов этого метода не изменяет состояние.</p></td></tr tr>><<td addTimedTextSource </p></td<>td>>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td<>td>{Idle, Initialized, Error}</p></td td td>><успешное вызов этого метода не изменяет состояние.</p></td></tr tr><><td selectTrack </p></td><td>>{Prepared, Startedd, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>>Успешное вызов этого метода не изменяет состояние.</p></td></tr tr><><td deselectTrack </p></td><td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td>><td>{Idle, Initialized, Error}</p></td<>>успешное вызов этого метода не изменяет состояние.</p></td></tr>

</стол>

"Разрешения"><h3 Permissions</h3>>

Может потребоваться объявить соответствующий элемент разрешения android.R.styleable#AndroidManifestUsesPermission &lt;uses-permission&gt; WAKE_LOCK.

Для этого класса требуется android.Manifest.permission#INTERNET разрешение при использовании с содержимым на основе сети.

"Обратные вызовы"><h3 Callbacks</h3>>

Приложения могут зарегистрироваться для информационных событий и событий ошибок, чтобы получать сведения о некоторых внутренних обновлениях состояния и возможных ошибках среды выполнения во время воспроизведения или потоковой передачи. Регистрация этих событий выполняется путем правильной настройки соответствующих прослушивателей (через вызовы #setOnPreparedListener(OnPreparedListener) setOnPreparedListener, #setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener, #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener#setOnCompletionListener(OnCompletionListener) setOnCompletionListener#setOnInfoListener(OnInfoListener) setOnInfoListener#setOnErrorListener(OnErrorListener) setOnErrorListenerи т. д.). Чтобы получить соответствующий обратный вызов, связанный с этими прослушивателями, приложения необходимы для создания объектов MediaPlayer в потоке с собственным запуском Looper (основной поток пользовательского интерфейса по умолчанию имеет запуск Looper).

Документация по Java для android.media.MediaPlayer.

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

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()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>.

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

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени.

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

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