| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android音视频开发(2)常用的系统播放器MediaPlayer -> 正文阅读 |
|
[移动开发]Android音视频开发(2)常用的系统播放器MediaPlayer |
1.状态图及生命周期MediaPlayer是一个多媒体播放类,通过它控制音视频流或本地音视频资源的播放过程。 它分为很多状态,如下图所示: 图中的单箭头弧代表同步函数调用,双箭头弧代表异步函数调用。 1.1 Idle状态、End状态以及生命周期?Idle就绪态:MediaPlayer创建实例或调用reset函数后,播放器被创建所处的状态。 End结束态:调用release函数后,编程End状态。 生命周期:Idle就绪态到End结束态的整个过程。 1.2 Error状态Error状态:触发回调机制,调用程序出错时,根据回调函数将状态触发到Error状态,一旦不适用MediaPlayer,就需要调用release函数,以便释放。 ? ? ? ? ? ? ? ? ? ?为了重新使用MediaPlayer,调用reset函数,会恢复到Idle状态,所以要设置错误监听,可从播放器内部返回的信息找到错误原因。 1.3?Initialized状态Initialized状态:初始化状态,当调用setDataSource函数时,将Idle状态变为Initialized状态。若在非Idle状态调用会抛异常,当重载时也需要抛出2个异常。 1.4 Prepared状态Prepare状态:分为2种方式。同步方式--本地音视频文件。异步方式--网络数据,需要缓冲数据。 1.5 Started状态Started状态:在播放控制开始之前,必须调用start函数并成功返回,状态由Prepared变为Started状态。当处于Started状态时,若事先注册过setOnBufferingUpdateListener,内部会回调,主要保持跟踪音视频流的buffering status。 1.6 Paused状态Paused状态:为暂停状态,调用MediaPlayer.pause函数时,状态由started变为Paused状态。这个状态是瞬间的。 1.7 Stopped状态Stopped状态:调用stop函数时,都将进入Stopped状态,无论处于何种状态。一旦Stopped,playback不能开始,直到重新调用prepare或prepareAsync函数,且处于Prepared状态才开始。 1.8 PlaybackCompleted状态PlaybackCompleted状态:当前播放的位置可通过getCurrentPosition函数获取,setLooping为true,表示循环播放。依然处于started状态。 今天就先了解这些基本的音视频开发的流程。接下来的会进行代码编写学习分析,更加深入的理解整个过程。我们下个博客见。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 0:55:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |