[Android] MediaPlayer SDK API glance

2024-03-05 14:36

本文主要是介绍[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

这篇关于[Android] MediaPlayer SDK API glance的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/776831

相关文章

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

DDei在线设计器-API-DDeiSheet

DDeiSheet   DDeiSheet是代表一个页签,一个页签含有一个DDeiStage用于显示图形。   DDeiSheet实例包含了一个页签的所有数据,在获取后可以通过它访问其他内容。DDeiFile中的sheets属性记录了当前文件的页签列表。   一个DDeiFile实例至少包含一个DDeiSheet实例。   本篇最后提供的示例可以在DDei文档直接预览 属性 属性名说明数

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

android 免费短信验证功能

没有太复杂的使用的话,功能实现比较简单粗暴。 在www.mob.com网站中可以申请使用免费短信验证功能。 步骤: 1.注册登录。 2.选择“短信验证码SDK” 3.下载对应的sdk包,我这是选studio的。 4.从头像那进入后台并创建短信验证应用,获取到key跟secret 5.根据技术文档操作(initSDK方法写在setContentView上面) 6.关键:在有用到的Mo

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

Android我的二维码扫描功能发展史(完整)

最近在研究下二维码扫描功能,跟据从网上查阅的资料到自己勉强已实现扫描功能来一一介绍我的二维码扫描功能实现的发展历程: 首页通过网络搜索发现做android二维码扫描功能看去都是基于google的ZXing项目开发。 2、搜索怎么使用ZXing实现自己的二维码扫描:从网上下载ZXing-2.2.zip以及core-2.2-source.jar文件,分别解压两个文件。然后把.jar解压出来的整个c

android 带与不带logo的二维码生成

该代码基于ZXing项目,这个网上能下载得到。 定义的控件以及属性: public static final int SCAN_CODE = 1;private ImageView iv;private EditText et;private Button qr_btn,add_logo;private Bitmap logo,bitmap,bmp; //logo图标private st

Android多线程下载见解

通过for循环开启N个线程,这是多线程,但每次循环都new一个线程肯定很耗内存的。那可以改用线程池来。 就以我个人对多线程下载的理解是开启一个线程后: 1.通过HttpUrlConnection对象获取要下载文件的总长度 2.通过RandomAccessFile流对象在本地创建一个跟远程文件长度一样大小的空文件。 3.通过文件总长度/线程个数=得到每个线程大概要下载的量(线程块大小)。

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载