-
音视频的 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
音视频的 playback。创建 MediaPlayer 的线程必须和调用 SDK 接口的线程是同一个。注册 callback 给 MediaPlayer SDK 的 thread 必须自带一个 running Looper,比如 main UI thread。回调函数:常用 :回调函数说明。
可以直接调用构造函数,利用setDataSource()方法设置资源。
MediaPlayer mp = new MediaPlayer();
// path可以是本地路径,也可以是网络地址
mp.setDataSource(String path);
也可以调用create()方法,create()方法会直接调用pr...
Android SDK提供了丰富的公共API,其中包括但不限于以下几类:
1. 应用程序框架:提供了许多基础类和接口,帮助开发人员构建应用程序,如Activity、Service、BroadcastReceiver等。
2. 系统服务:提供了许多系统级别的服务,如NotificationManager、AlarmManager、LocationManager等。
3. 用户界面:提供了一系列可以用于创建用户界面的类和接口,如View、TextView、Button等。
4. 图形图像:提供了处理图形和图像的类和接口,如Canvas、Bitmap、Drawable等。
5. 多媒体:提供了用于处理音频和视频的类和接口,如MediaPlayer、AudioManager、VideoView等。
6. 数据存储:提供了用于访问和管理数据的类和接口,如SharedPreferences、SQLiteOpenHelper等。
7. 网络通信:提供了用于网络通信的类和接口,如HttpURLConnection、HttpClient、Socket等。
8. 安全性和权限:提供了用于确保应用程序安全性和权限管理的类和接口,如PackageManager、KeyStore等。
以上是Android SDK提供的一些常见公共API,开发人员可以根据自己的需求选择合适的API进行开发。