MediaPlayer Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos.
[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
- Herança
- Atributos
- Implementações
Comentários
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos.
O MediaPlayer não é thread-safe. A criação e todo o acesso às instâncias do jogador devem estar no mesmo thread. Se estiver registrando retornos de chamada, o thread deve ter um Looper.
Os tópicos abordados aqui são: <ol><li>State Diagram<li>Valid and Invalid States<li>Permissions<li>Register informational and error callbacks</ol>
<div class="referência especial"><h3>Developer Guides</h3>
Para obter mais informações sobre como usar o MediaPlayer, leia o Guia do desenvolvedor de reprodução de mídia.
</Div>
"StateDiagram"><h3>Diagrama de Estado</h3>
O controle de reprodução de arquivos e fluxos de áudio/vídeo é gerenciado como uma máquina de estado. O diagrama a seguir mostra o ciclo de vida e os estados de um objeto MediaPlayer controlado pelas operações de controle de reprodução com suporte. Os ovais representam os estados em que um objeto MediaPlayer pode residir. Os arcos representam as operações de controle de reprodução que conduzem a transição do estado do objeto. Existem dois tipos de arcos. Os arcos com uma única cabeça de seta representam chamadas de método síncronas, enquanto aqueles com uma ponta de seta dupla representam chamadas de método assíncronas.
<img src=".. /.. /.. /images/mediaplayer_state_diagram.gif" alt="MediaPlayer State diagram" border="0" />
A partir deste diagrama de estado, pode-se ver que um objeto MediaPlayer tem os seguintes estados:
<ul li>Quando um objeto MediaPlayer é criado usando new
ou depois #reset()
é chamado, ele está no <estado em>Idle</em>, e depois #release()
é chamado, ele está no <estado em>End</em>.>< Entre esses dois estados está o ciclo de vida do objeto MediaPlayer. <><ul li>Há uma diferença sutil, mas importante, entre um objeto MediaPlayer recém-construído e o objeto MediaPlayer depois #reset()
que é chamado. É um erro de programação invocar métodos como #getCurrentPosition()
, #getDuration()
, , #getVideoHeight()
, #getVideoWidth()
#setAudioAttributes(AudioAttributes)
, #setLooping(boolean)
, #setVolume(float, float)
, #prepare()
#start()
#stop()
#pause()
#seekTo(long, int)
ou #prepareAsync()
no <estado em>Idle</em> para ambos os casos. Se qualquer um desses métodos for chamado logo após a construção de um objeto MediaPlayer, o método de retorno de chamada fornecido pelo usuário OnErrorListener.onError() não será chamado pelo mecanismo interno do player e o estado do objeto permanecerá inalterado; mas se esses métodos forem chamados logo após #reset()
, o método de retorno de chamada fornecido pelo usuário OnErrorListener.onError() será chamado pelo mecanismo interno do player e o objeto será transferido para o <estado em>Error</em> . </li><li>Você deve manter uma referência a uma instância do MediaPlayer para evitar que ela seja coletada como lixo. Se uma instância do MediaPlayer for coletada, #release
será chamada, fazendo com que qualquer reprodução em andamento seja interrompida. <li>Você deve ligar #release()
depois de terminar de usar uma instância para liberar recursos adquiridos, como memória e codecs. Depois de chamar #release
o , você não deve mais interagir com a instância liberada. <li>MediaPlayer objetos criados usando new
está no <estado em>Idle</em> , enquanto aqueles criados com um dos métodos convenientes create
sobrecarregados estão <em>NOT</em> no <estado em>Idle</em> . Na verdade, os objetos estão no estado em>Prepared</em> se a criação usando create
o <método for bem-sucedida. </li></ul></li><li>Em geral, algumas operações de controle de reprodução podem falhar devido a vários motivos, como formato de áudio/vídeo não suportado, áudio/vídeo mal intercalado, resolução muito alta, tempo limite de streaming e afins. Assim, a comunicação e a recuperação de erros são uma preocupação importante nessas circunstâncias. Às vezes, devido a erros de programação, a invocação de uma operação de controle de reprodução em um estado inválido também pode ocorrer. Em todas essas condições de erro, o mecanismo de player interno invoca um método OnErrorListener.onError() fornecido pelo usuário se um OnErrorListener tiver sido registrado previamente via #setOnErrorListener(android.media.MediaPlayer.OnErrorListener)
. <><ul li>É importante observar que, uma vez que ocorre um erro, o objeto MediaPlayer entra <no estado em>Error</em> (exceto conforme observado acima), mesmo que um ouvinte de erro não tenha sido registrado pelo aplicativo.</li>li Para reutilizar um objeto MediaPlayer que está no <estado em> Error</em> e se recuperar do erro, #reset()
pode ser chamado para restaurar o objeto ao seu <estado em>Idle</em>.<></li><li>É uma boa prática de programação fazer com que seu aplicativo registre um OnErrorListener para ficar atento a notificações de erro do mecanismo interno do player.</li><li>IllegalStateException é lançado para evitar erros de programação, como chamar #prepare()
, #prepareAsync()
ou um dos métodos sobrecarregados setDataSource
em um estado inválido. </li></ul></li><li>Chamando #setDataSource(FileDescriptor)
, ou #setDataSource(String)
, ou #setDataSource(Context, Uri)
, ou , ou #setDataSource(FileDescriptor, long, long)
transfere #setDataSource(MediaDataSource)
um objeto MediaPlayer no <estado em>Idle</em> para o <estado em>Initialized</em> . <><ul li>Um IllegalStateException é lançado se setDataSource() é chamado em qualquer outro estado.</li><li>É uma boa prática de programação estar sempre atento IllegalArgumentException
e IOException
isso pode ser jogado a partir dos métodos sobrecarregadossetDataSource
.</li></ul></li><li>Um objeto MediaPlayer deve primeiro entrar no estado em>Prepared/em> antes que a <reprodução possa ser iniciada<. <><ul li>Há duas maneiras (síncrona vs. assíncrona) que o <estado em>Prepared</em> pode ser alcançado: ou uma chamada para #prepare()
(síncrona) que transfere o objeto para o <estado em>Prepared</em> uma vez que a chamada de método retorna, ou uma chamada para #prepareAsync()
(assíncrona) que primeiro transfere o objeto para o <em>Preparing</em> após o retorno da chamada (que ocorre quase imediatamente) enquanto o mecanismo interno do jogador continua trabalhando no restante do trabalho de preparação até que o trabalho de preparação seja concluído. Quando a preparação for concluída ou quando #prepare()
a chamada retornar, o mecanismo interno do player chamará um método de retorno de chamada fornecido pelo usuário, onPrepared() da interface OnPreparedListener, se um OnPreparedListener for registrado previamente via #setOnPreparedListener(android.media.MediaPlayer.OnPreparedListener)
.</li><li>É importante observar que o <estado em>Preparing</em> é um estado transitório, e o comportamento de chamar qualquer método com efeito colateral enquanto um objeto MediaPlayer está no <estado em>Preparing</em> é indefinido.</li><li>Um IllegalStateException é lançado se #prepare()
ou #prepareAsync()
for chamado em qualquer outro estado.</li><li>Enquanto estiver no <estado em>Prepared</em> , propriedades como volume de áudio/som, screenOnWhilePlaying, looping podem ser ajustadas invocando os métodos de conjunto correspondentes.</li></ul></li><li>Para iniciar a reprodução, #start()
deve ser chamado. Após #start()
o retorno bem-sucedido, o objeto MediaPlayer está no <estado em>Started</em> . #isPlaying()
pode ser chamado para testar se o objeto MediaPlayer está no <estado em>Started</em> . <ul li>Enquanto estiver no <estado em>Started</em>, o mecanismo de player interno chama um usuário fornecido pelo método de retorno de chamada OnBufferingUpdateListener.onBufferingUpdate() se um OnBufferingUpdateListener tiver sido registrado previamente via #setOnBufferingUpdateListener(OnBufferingUpdateListener)
.>< Esse retorno de chamada permite que os aplicativos acompanhem o status do buffer durante a transmissão de áudio/vídeo.</li>li A chamada #start()
não tem efeito em um objeto MediaPlayer que já está no <estado em>Started</em>.<></li></ul></li><li>A reprodução pode ser pausada e interrompida, e a posição de reprodução atual pode ser ajustada. A reprodução pode ser pausada via #pause()
. Quando a chamada para #pause()
retorna, o objeto MediaPlayer entra <no estado em>Paused</em> . Observe que a <transição do estado em>Started</em> para o <estado em>Paused</em> e vice-versa acontece de forma assíncrona no mecanismo do player. Pode levar algum tempo até que o estado seja atualizado em chamadas para #isPlaying()
, e pode ser um número de segundos no caso de conteúdo transmitido. <><ul li>Chamando #start()
para retomar a reprodução de um objeto MediaPlayer pausado e a posição de reprodução retomada é a mesma de onde foi pausada. Quando a chamada para #start()
retorna, o objeto MediaPlayer pausado volta para o <estado em>Started</em>.</li>li A chamada #pause()
não tem efeito sobre um objeto MediaPlayer que já está no <estado em>Paused</em>.<></li></ul></li><li A>chamada #stop()
interrompe a <reprodução e faz com que um MediaPlayer no estado em>Started</em>, <em>Paused</em>, <em>Prepared </em> ou <em>PlaybackCompleted</em> entre no <estado em>Stopped</em>. <ul li>Uma vez no estado em>Stopped</em>, a <reprodução não pode ser iniciada até #prepare()
ou #prepareAsync()
são chamados para definir o objeto MediaPlayer para o <estado em>Prepared</em> novamente.<></li>li A chamada #stop()
não tem efeito em um objeto MediaPlayer que já está no <estado em>Stopped</em>.<></li></ul></li><li>A posição de reprodução pode ser ajustada com uma chamada para #seekTo(long, int)
. <><ul li>Embora a chamada assíncrona #seekTo(long, int)
retorne imediatamente, a operação de busca real pode demorar um pouco para ser concluída, especialmente para áudio/vídeo sendo transmitido. Quando a operação de busca real é concluída, o mecanismo interno do player chama um usuário fornecido OnSeekComplete.onSeekComplete() se um OnSeekCompleteListener tiver sido registrado previamente via #setOnSeekCompleteListener(OnSeekCompleteListener)
.</li><li>Observe que #seekTo(long, int)
também pode ser chamado nos outros estados, como <em>Prepared</em>, <em>Paused</em> e <em>PlaybackCompleted </em> state. Quando #seekTo(long, int)
for chamado nesses estados, um quadro de vídeo será exibido se o fluxo tiver vídeo e a posição solicitada for válida. </li><li>Além disso, a posição de reprodução atual real pode ser recuperada com uma chamada para #getCurrentPosition()
, o que é útil para aplicativos como um player de música que precisam acompanhar o progresso da reprodução.</li></ul></li><li>Quando a reprodução atinge o final do fluxo, a reprodução é concluída. <><ul li>Se o modo de looping estava sendo definido como <var>true</var> com #setLooping(boolean)
, o objeto MediaPlayer deve permanecer no <estado em>Started</em>.</li><li>Se o modo de looping foi definido como <var>false </var>, o mecanismo do player chama um método de retorno de chamada fornecido pelo usuário, OnCompletion.onCompletion(), se um OnCompletionListener for registrado previamente via #setOnCompletionListener(OnCompletionListener)
. A chamada do retorno de chamada sinaliza que o objeto agora está no <estado em> PlaybackCompleted</em>.</li><li>Enquanto estiver no estado em>PlaybackCompleted</em>, a <chamada #start()
pode reiniciar a reprodução a partir do início da fonte de áudio/vídeo.</li></ul>
"Valid_and_Invalid_States"><h3>Estados válidos e inválidos</h3>
<table border="0" cellspacing="0" cellpadding="0">tr td>Nome <do Método /p></td><td>Estados válidos </p></td><td>Estados <inválidos /p></td><td>Comentários </p></td></tr<>tr td><>attachAuxEffect </p></td<>td>{Inicializado, Preparado, Iniciado, Pausado, Parado, ReproduçãoConcluída}</p></td><td>{Inativo, Erro}</p/><><< td><td>Esse método deve ser chamado após setDataSource. Chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>getAudioSessionId </p></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>getCurrentPosition </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em> . </p></td></tr><tr><td>getDuration </p></td><td>{Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em> . </p></td></tr><tr><td>getVideoHeight </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em> . </p></td></tr><tr><td>getVideoWidth </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em> . </p></td></tr<>tr><td>isPlaying </p></td><td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em> . </p></td></tr><tr><td>pause </p></td><td>{Started, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Prepared, Stopped, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido transfere o objeto para o <estado em>Paused</em.> Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em>.</p></td></tr><tr td><>prepare </p></td><td>{Initialized, Stopped}</p></td<>td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido transfere o objeto para o <estado em>Prepared</em.> Chamar esse método em um estado inválido lança um IllegalStateException.</p></td></tr><tr><td>prepareAsync </p></td><td>{Initialized, Stopped}</p></td<>td>{Idle, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido transfere o objeto para o <estado em>Preparing</em.> Chamar esse método em um estado inválido lança um IllegalStateException.</p></td></tr<>tr><td>release </p></td><td>qualquer </p></td><td>{}</p></td<>td>Depois , #release()
você não deve interagir com o objeto. </p></td></tr><tr><td>reset </p></td<>td>{Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>{}</p></td><td>Depois #reset()
, o objeto é como se estivesse apenas sendo criado.</p></td></tr<>tr><td>seekTo </p></td><td>{Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Stopped, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em> . </p></td></tr><tr><td>setAudioAttributes </p></td><td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método não altera o estado. Para que o tipo de atributos de áudio de destino se torne efetivo, esse método deve ser chamado antes de prepare() ou prepareAsync().</p></td></tr><tr><td>setAudioSessionId </p></td><td>{Idle}</p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>Esse método deve ser chamado no estado ocioso, pois o ID da sessão de áudio deve ser conhecido antes de chamar setDataSource. Chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setAudioStreamType (preterido)</p></td><td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método não altera o estado. Para que o tipo de fluxo de áudio de destino se torne efetivo, esse método deve ser chamado antes de prepare() ou prepareAsync().</p></td></tr><tr><td>setAuxEffectSendLevel </p></td><td>any</p></td><td>{}</p></td><td>Chamar esse método não altera o estado do objeto. </p></td></tr><tr><td>setDataSource </p></td<>td>{Idle}</p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido transfere o objeto para o <estado em>Initialized</em.> Chamar esse método em um estado inválido lança um IllegalStateException.</p></td></tr><tr><td>setDisplay </p></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setSurface </p></td><td>qualquer </p></td><td>{}</p></td><td>Este método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr<>tr><td>setVideoScalingMode </p></td><td>{Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted}</p></td><td>{Idle, Error}</p></td<>td>A invocação bem-sucedida desse método não altera o estado.</p></td></tr><tr><td>setLooping </p></td><td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido não altera o estado. Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em>.</p></td></tr<>tr><td>isLooping </p></td><td>qualquer </p></td><td>{}</p></td><td>Este método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setOnBufferingUpdateListener </p></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setOnCompletionListener </p></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setOnErrorListener </p></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setOnPreparedListener </p></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setOnSeekCompleteListener </p></td><td>qualquer </p></td><td>{}</p></td><td>Este método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr><tr><td>setPlaybackParams</p></td><td>{Initialized, Prepared, Started, Paused, PlaybackCompleted, Error}</p></td<>td>{Idle, Stopped}</p></td><td>Este método mudará de estado em alguns casos, dependendo de quando for chamado. </p></td></tr<>tr><td>setScreenOnWhilePlaying</></td><td>qualquer </p></td><td>{}</p></td><td>Esse método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto. </p></td></tr<>tr><td>setVolume </p></td><td>{Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted}</p></td><td>{Error}</p></td><td>A invocação bem-sucedida desse método não altera o estado. <tr td setWakeMode </p></td><td>qualquer </p></td><td>{}</p></td><td>Este método pode ser chamado em qualquer estado e chamá-lo não altera o estado do objeto.<>></p></td></tr<>tr td><>start </p></td><td>{Prepared, Started, Paused, PlaybackCompleted}</p></td<>td>{Idle, Initialized, Stopped, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido transfere o objeto para o <estado em>Started</em.> Chamar esse método em um estado inválido transfere o objeto para o <estado em>Error</em>.</p></td></tr><tr><td>stop </p></td><td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td><td>A invocação bem-sucedida desse método em um estado válido transfere o objeto para o <estado em>Stopped</em.> Chamar esse método em um estado inválido transfere o objeto para o <estado 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>A invocação bem-sucedida desse método não altera o estado.</p></td></tr><tr><td>addTimedTextSource </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>td>A invocação bem-sucedida desse método não altera o estado.</p></td></tr<>tr><td>selectTrack </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>td>A invocação bem-sucedida deste método não altera o estado.</p></td></tr<>tr><td>deselectTrack </p></td<>td>{Prepared, Started, Stopped, Paused, PlaybackCompleted}</p></td><td>{Idle, Initialized, Error}</p></td<>td>A invocação bem-sucedida deste método não altera o estado.</p></td></tr>
</mesa>
"Permissões"><h3>Permissões</h3>
Pode ser necessário declarar um elemento de permissão android.R.styleable#AndroidManifestUsesPermission <uses-permission>
WAKE_LOCK correspondente.
Essa classe requer a android.Manifest.permission#INTERNET
permissão quando usada com conteúdo baseado em rede.
"Retornos de chamada"><h3>Retornos de chamada/<h3>
Os aplicativos podem querer se registrar para eventos informativos e de erro para serem informados de alguma atualização de estado interno e possíveis erros de tempo de execução durante a reprodução ou streaming. O registro para esses eventos é feito definindo corretamente os ouvintes apropriados (através de chamadas para #setOnPreparedListener(OnPreparedListener) setOnPreparedListener
, #setOnVideoSizeChangedListener(OnVideoSizeChangedListener) setOnVideoSizeChangedListener
, #setOnSeekCompleteListener(OnSeekCompleteListener) setOnSeekCompleteListener
, #setOnCompletionListener(OnCompletionListener) setOnCompletionListener
, #setOnBufferingUpdateListener(OnBufferingUpdateListener) setOnBufferingUpdateListener
, #setOnInfoListener(OnInfoListener) setOnInfoListener
, #setOnErrorListener(OnErrorListener) setOnErrorListener
, etc). Para receber o respectivo retorno de chamada associado a esses ouvintes, os aplicativos são obrigados a criar objetos MediaPlayer em um thread com seu próprio Looper em execução (thread principal da interface do usuário por padrão tem um Looper em execução).
Documentação Java para android.media.MediaPlayer
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.
Construtores
MediaPlayer() |
Construtor padrão. |
MediaPlayer(Context) |
Construtor padrão com contexto. |
MediaPlayer(IntPtr, JniHandleOwnership) |
Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo tempo de execução. |
Campos
MediaErrorIo |
Obsoleto.
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
MediaErrorMalformed |
Obsoleto.
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
MediaErrorTimedOut |
Obsoleto.
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
MediaErrorUnsupported |
Obsoleto.
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
MediaMimetypeTextSubrip |
Tipo MIME para contêiner SubRip (SRT). |
VideoScalingModeScaleToFit |
Obsoleto.
Especifica um modo de dimensionamento de vídeo. |
VideoScalingModeScaleToFitWithCropping |
Obsoleto.
Especifica um modo de dimensionamento de vídeo. |
Propriedades
AudioSessionId |
Retorna o ID da sessão de áudio. -ou- Define o ID da sessão de áudio. |
Class |
Retorna a classe de tempo de execução deste |
CurrentPosition |
Obtém a posição de reprodução atual. |
Duration |
Obtém a duração do arquivo. |
Handle |
O identificador para a instância subjacente do Android. (Herdado de Object) |
IsPlaying |
Verifica se o MediaPlayer está sendo reproduzido. |
JniIdentityHashCode |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
JniPeerMembers |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
Looping |
Verifica se o MediaPlayer está em loop ou não. -ou- Define o jogador como looping ou non-looping. |
Metrics |
Retornar dados de métricas sobre o player atual. |
PeerReference |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
PlaybackParams |
Obtém os parâmetros de reprodução, contendo a taxa de reprodução atual. -ou- Define a taxa de reprodução usando |
PreferredDevice |
Retorna a saída selecionada especificada por |
RoutedDevice |
Retorna uma |
SyncParams |
Obtém o modo de sincronização A/V. -ou- Define o modo de sincronização A/V. |
ThresholdClass |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
ThresholdType |
Esta API suporta a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. |
Timestamp |
Obtenha a posição de reprodução atual como um |
VideoHeight |
Retorna a altura do vídeo. |
VideoWidth |
Retorna a largura do vídeo. |
Métodos
AddOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener, Handler) |
Adiciona um |
AddTimedTextSource(Context, Uri, String) |
Adiciona um arquivo de origem de texto cronometrado externo (Uri). |
AddTimedTextSource(FileDescriptor, Int64, Int64, String) |
Adiciona um arquivo de texto temporizado externo (FileDescriptor). |
AddTimedTextSource(FileDescriptor, String) |
Adiciona um arquivo de origem de texto cronometrado externo (FileDescriptor). |
AddTimedTextSource(String, String) |
Adiciona um arquivo de origem de texto cronometrado externo. |
AttachAuxEffect(Int32) |
Atribui um efeito auxiliar ao jogador. |
ClearOnMediaTimeDiscontinuityListener() |
Limpa o ouvinte previamente definido com |
ClearOnSubtitleDataListener() |
Limpa o ouvinte previamente definido com |
Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
Create(Context, Int32) |
Método de conveniência para criar um MediaPlayer para uma determinada ID de recurso. |
Create(Context, Int32, AudioAttributes, Int32) |
O mesmo método de fábrica que |
Create(Context, Uri) |
Método de conveniência para criar um MediaPlayer para um determinado Uri. |
Create(Context, Uri, ISurfaceHolder) |
Método de conveniência para criar um MediaPlayer para um determinado Uri. |
Create(Context, Uri, ISurfaceHolder, AudioAttributes, Int32) |
O mesmo método de fábrica que |
CreateVolumeShaper(VolumeShaper+Configuration) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
DeselectTrack(Int32) |
Desmarque uma faixa. |
Dispose() |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
Dispose(Boolean) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
Equals(Object) |
Indica se algum outro objeto é "igual" a este. (Herdado de Object) |
GetDrmInfo() |
Recupera as informações de DRM associadas à fonte atual |
GetDrmPropertyString(String) |
Leia um valor da propriedade String do plug-in do mecanismo DRM, considerando a cadeia de caracteres do nome da propriedade. |
GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
GetKeyRequest(Byte[], Byte[], String, MediaDrmKeyType, IDictionary<String,String>) |
Uma troca de solicitação/resposta de chave ocorre entre o aplicativo e um servidor de licenças para obter ou liberar chaves usadas para descriptografar conteúdo criptografado. |
GetSelectedTrack(MediaTrackType) |
Retorna o índice da faixa de áudio, vídeo ou legenda atualmente selecionada para reprodução, O valor de retorno é um índice na matriz retornado por |
GetTrackInfo() |
Retorna uma matriz de informações de trilha. |
JavaFinalize() |
Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto. (Herdado de Object) |
Notify() |
Ativa um único thread que está aguardando no monitor deste objeto. (Herdado de Object) |
NotifyAll() |
Ativa todos os threads que estão aguardando no monitor deste objeto. (Herdado de Object) |
Pause() |
Pausa a reprodução. |
Prepare() |
Prepara o jogador para a reprodução, de forma síncrona. |
PrepareAsync() |
Prepara o jogador para a reprodução, de forma assíncrona. |
PrepareDrm(UUID) |
Prepara o DRM para a fonte atual |
ProvideKeyResponse(Byte[], Byte[]) |
Uma resposta de chave é recebida do servidor de licenças pelo aplicativo e, em seguida, é fornecida ao plug-in do mecanismo DRM usando provideKeyResponse. |
Release() |
Libera recursos associados a esse objeto MediaPlayer. |
ReleaseDrm() |
Libera a sessão DRM |
RemoveOnRoutingChangedListener(IAudioRoutingOnRoutingChangedListener) |
Remove um |
Reset() |
Redefine o MediaPlayer para seu estado não inicializado. |
RestoreKeys(Byte[]) |
Restaurar chaves offline persistentes em uma nova sessão. |
SeekTo(Int32) |
Busca a posição de tempo especificada. |
SeekTo(Int64, MediaPlayerSeekMode) |
Move a mídia para a posição de tempo especificada considerando o modo fornecido. |
SelectTrack(Int32) |
Seleciona uma faixa. |
SetAudioAttributes(AudioAttributes) |
Define os atributos de áudio para este MediaPlayer. |
SetAudioStreamType(Stream) |
Define o tipo de fluxo de áudio para este MediaPlayer. |
SetAuxEffectSendLevel(Single) |
Define o nível de envio do jogador para o efeito auxiliar anexado. |
SetDataSource(AssetFileDescriptor) |
Define a fonte de dados (AssetFileDescriptor) a ser usada. |
SetDataSource(Context, Uri) |
Define a fonte de dados como um Uri de conteúdo. |
SetDataSource(Context, Uri, IDictionary<String,String>) |
Define a fonte de dados como um Uri de conteúdo. |
SetDataSource(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
Define a fonte de dados como um Uri de conteúdo. |
SetDataSource(FileDescriptor) |
Define a fonte de dados (FileDescriptor) a ser usada. |
SetDataSource(FileDescriptor, Int64, Int64) |
Define a fonte de dados (FileDescriptor) a ser usada. |
SetDataSource(MediaDataSource) |
Define a fonte de dados (MediaDataSource) a ser usada. |
SetDataSource(String) |
Define a fonte de dados (caminho do arquivo ou URL http/rtsp) a ser usada. |
SetDataSourceAsync(AssetFileDescriptor) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(Context, Uri) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(Context, Uri, IDictionary<String,String>, IList<HttpCookie>) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(FileDescriptor) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(FileDescriptor, Int64, Int64) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(MediaDataSource) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDataSourceAsync(String) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SetDisplay(ISurfaceHolder) |
Define o |
SetDrmPropertyString(String, String) |
Defina um valor da propriedade String do plug-in do mecanismo DRM. |
SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle. (Herdado de Object) |
SetNextMediaPlayer(MediaPlayer) |
Defina o MediaPlayer para iniciar quando este MediaPlayer terminar a reprodução (i. |
SetOnBufferingUpdateListener(MediaPlayer+IOnBufferingUpdateListener) |
Registre um retorno de chamada a ser chamado quando o status do buffer de um fluxo de rede for alterado. |
SetOnCompletionListener(MediaPlayer+IOnCompletionListener) |
Registre um retorno de chamada a ser chamado quando o fim de uma fonte de mídia for atingido durante a reprodução. |
SetOnDrmConfigHelper(MediaPlayer+IOnDrmConfigHelper) |
Registre um retorno de chamada a ser chamado para a configuração do objeto DRM antes que a sessão seja criada. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener) |
Registre um retorno de chamada a ser chamado quando as informações de DRM forem conhecidas. |
SetOnDrmInfoListener(MediaPlayer+IOnDrmInfoListener, Handler) |
Registre um retorno de chamada a ser chamado quando as informações de DRM forem conhecidas. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener) |
Registre um retorno de chamada a ser chamado quando o objeto DRM for preparado. |
SetOnDrmPreparedListener(MediaPlayer+IOnDrmPreparedListener, Handler) |
Registre um retorno de chamada a ser chamado quando o objeto DRM for preparado. |
SetOnErrorListener(MediaPlayer+IOnErrorListener) |
Registre um retorno de chamada a ser chamado quando um erro tiver ocorrido durante uma operação assíncrona. |
SetOnInfoListener(MediaPlayer+IOnInfoListener) |
Registre um retorno de chamada a ser chamado quando uma informação/aviso estiver disponível. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener) |
Define o ouvinte a ser chamado quando uma descontinuidade de tempo de mídia é encontrada. |
SetOnMediaTimeDiscontinuityListener(MediaPlayer+IOnMediaTimeDiscontinuityListener, Handler) |
Define o ouvinte a ser chamado quando uma descontinuidade de tempo de mídia é encontrada. |
SetOnPreparedListener(MediaPlayer+IOnPreparedListener) |
Registre um retorno de chamada a ser chamado quando a fonte de mídia estiver pronta para reprodução. |
SetOnSeekCompleteListener(MediaPlayer+IOnSeekCompleteListener) |
Registre um retorno de chamada a ser chamado quando uma operação de busca for concluída. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener) |
Define o ouvinte a ser chamado quando uma faixa de legenda tem novos dados disponíveis. |
SetOnSubtitleDataListener(MediaPlayer+IOnSubtitleDataListener, Handler) |
Define o ouvinte a ser chamado quando uma faixa de legenda tem novos dados disponíveis. |
SetOnTimedMetaDataAvailableListener(MediaPlayer+IOnTimedMetaDataAvailableListener) |
Registre um retorno de chamada a ser chamado quando uma faixa selecionada tiver metadados cronometrados disponíveis. |
SetOnTimedTextListener(MediaPlayer+IOnTimedTextListener) |
Registre um retorno de chamada a ser chamado quando um texto cronometrado estiver disponível para exibição. |
SetOnVideoSizeChangedListener(MediaPlayer+IOnVideoSizeChangedListener) |
Registre um retorno de chamada a ser chamado quando o tamanho do vídeo for conhecido ou atualizado. |
SetPreferredDevice(AudioDeviceInfo) |
Especifica um dispositivo de áudio (por meio de um |
SetScreenOnWhilePlaying(Boolean) |
Controle se devemos usar o SurfaceHolder conectado para manter a tela ligada enquanto a reprodução de vídeo está ocorrendo. |
SetSurface(Surface) |
Define o |
SetVideoScalingMode(VideoScalingMode) |
Define o modo de dimensionamento de vídeo. |
SetVolume(Single, Single) |
Define o volume neste leitor. |
SetWakeMode(Context, WakeLockFlags) |
Defina o comportamento de gerenciamento de energia de baixo nível para este MediaPlayer. |
Start() |
Inicia ou retoma a reprodução. |
Stop() |
Interrompe a reprodução após a reprodução ter sido iniciada ou pausada. |
ToArray<T>() |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
UnregisterFromRuntime() |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
Wait() |
Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>. (Herdado de Object) |
Wait(Int64) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Wait(Int64, Int32) |
Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido. (Herdado de Object) |
Eventos
BufferingUpdate |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
Completion |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
DrmInfoEvent |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
DrmPrepared |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
Error |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
Info |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
MediaTimeDiscontinuity |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
Prepared |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
RoutingChanged |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SeekComplete |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
SubtitleData |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
TimedMetaDataAvailable |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
TimedText |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
VideoSizeChanged |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
Implantações explícitas de interface
IJavaPeerable.Disposed() |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
IJavaPeerable.DisposeUnlessReferenced() |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
IJavaPeerable.Finalized() |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
IJavaPeerable.JniManagedPeerState |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. (Herdado de Object) |
Métodos de Extensão
JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada em tempo de execução do Android. |
JavaCast<TResult>(IJavaObject) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |
GetJniTypeName(IJavaPeerable) |
MediaPlayer classe pode ser usado para controlar a reprodução de arquivos de áudio / vídeo e fluxos. |