[Android] MediaPlayer SDK API glance

参考:

https://developer.android.com/reference/android/media/MediaPlayer


如何使用MediaPlayer SDK:

https://developer.android.com/media/platform/mediaplayer


概述:

  • 音视频的 playback。
  • 创建 MediaPlayer 的线程必须和调用 SDK 接口的线程是同一个。
  • 注册 callback 给 MediaPlayer SDK 的 thread 必须自带一个 running Looper,比如 main UI thread。

回调函数:

常用 : 

void setOnBufferingUpdateListener (MediaPlayer.OnBufferingUpdateListener listener)
void setOnCompletionListener (MediaPlayer.OnCompletionListener listener)
void setOnErrorListener (MediaPlayer.OnErrorListener listener)
void setOnInfoListener (MediaPlayer.OnInfoListener listener)
void setOnPreparedListener (MediaPlayer.OnPreparedListener listener)
void setOnSeekCompleteListener (MediaPlayer.OnSeekCompleteListener listener)
void setOnVideoSizeChangedListener (MediaPlayer.OnVideoSizeChangedListener listener)

setOnBufferingUpdateListener:周期性(NuPlayer是1秒)上报buffering值,以percent格式

​​​​​​回调函数说明

如果整个流的duration是1小时,假如当前播放到半小时的位置,同时又缓存了6分钟的数据,那么这个Buffering的值是 50% + 10%  = 60% ,50%是当前的播放到的pts,10%是断开网络后还能播放多久。

这个值一般用来在进度条上显示灰色缓冲进度。

setOnCompletionListener:eos时上报。

回调函数说明

setOnErrorListener :异步Error上报,同步Error通过throw exception完成。

回调函数说明

setOnInfoListener :Media信息上报或者warning上报。

回调函数说明

setOnPreparedListener :底层已经准备好 playback 时上报。

回调函数说明

setOnSeekCompleteListener         :seek完成时上报。

回调函数说明

setOnVideoSizeChangedListener :何时上报?

回调函数说明

不常用:

void setOnDrmPreparedListener(MediaPlayer.OnDrmPreparedListener listener)
void setOnMediaTimeDiscontinuityListener(MediaPlayer.OnMediaTimeDiscontinuityListener listener,Handler handler)
void setOnMediaTimeDiscontinuityListener(MediaPlayer.OnMediaTimeDiscontinuityListener listener)
void setOnSubtitleDataListener(MediaPlayer.OnSubtitleDataListener listener)
void setOnSubtitleDataListener(MediaPlayer.OnSubtitleDataListener listener, Handler handler)
void setOnTimedMetaDataAvailableListener(MediaPlayer.OnTimedMetaDataAvailableListener listener)
void setOnTimedTextListener(MediaPlayer.OnTimedTextListener listener)

Public 方法:

常用:

void setDataSource(String path)
void setDisplay(SurfaceHolder sh)
int getCurrentPosition()
int getDuration()
int getVideoHeight()
int getVideoWidth()
boolean isPlaying()
void pause()
void prepareAsync()
void release()
void reset ()
void seekTo (int msec)
void setAudioStreamType (int streamtype)
void setDataSource (Context context, Uri uri, Map<String, String> headers)
void setLooping (boolean looping) (Context context, Uri uri)
void setPlaybackParams (PlaybackParams params)
void setScreenOnWhilePlaying (boolean screenOn)
void setSurface (Surface surface)
void setVolume (float leftVolume, float rightVolume)
void start ()
void stop ()

不常用:

参考 https://developer.android.com/reference/android/media/MediaPlayer#public-methods_1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值