当前位置: 首页 > news >正文

[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

http://www.lryc.cn/news/313490.html

相关文章:

  • 原始手写helloworld并打jar包允许
  • maven 的安装与配置(Command ‘mvn‘ not found)修改配置文件后新终端依旧无法识别到 mvn 命令
  • Pycharm无法粘贴外部文本问题
  • 学习Java的第四天
  • 【Javaweb】【瑞吉外卖】登录功能plus--拦截器filterinterceptors实现
  • 关于 Runes 协议及「公开铭刻」发行机制的拓展讨论
  • chkdsk修复会造成文件丢失吗?chkdsk数据丢失还能恢复吗
  • Hypermesh2019快捷键大全
  • CSS布局——Flexbox基础使用
  • Kubernetes(K8s):容器化应用的航空母舰
  • Java配置49-nginx 反向代理 sftp 服务器
  • Qt添加VTK并绘制图形
  • VsCode搭建Spring Boot项目环境
  • (黑马出品_05)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • window mysql 安装出现的问题
  • 【3GPP】【核心网】【5G】5G核心网协议解析(二)(超详细)
  • 物联网带来的六大运营挑战
  • 【ETCD】简介安装常用操作---图文并茂详细讲解
  • 第四篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas生物信息学领域应用
  • Elasticsearch:机器学习与人工智能 - 理解差异
  • 智引未来:2024年科技革新引领工业界变革与机遇
  • 自动化运维工具----Ansible playbook详解
  • 【element-ui】el-table表格高亮选中
  • 构建MySQL数据库的高可用与高容错系统:关键策略与最佳实践
  • 简析内部审计数字化转型的方法和路径【小落送书(第6期)】
  • mysql和oracle数据库的区别与联系(值得收藏)
  • vulhub中Wordpress 4.6 任意命令执行漏洞复现
  • ETCD分布式缓存
  • 【Linux】iftop命令详解
  • 【蓝桥杯】Excel地址