常用的系统播放器——MediaPlayer生命周期

news2024/12/23 9:45:37

常用的系统播放器——MediaPlayer

状态图以及生命周期

在这里插入图片描述

Idle状态、End状态、Error状态

MediaPlayer创建实例或者调用reset()后就处于Idle状态,即就绪。

任意时刻调用release()就会进入End

当运行过程中出错,用户提供的回调函数onErrorListener.onError就会触发,进入Error状态

Initialized状态

调用setDataSource(参数)就会进入Initialized,只能在Idle调用,不然则会抛出IllegalArgumentExceptionIOException

Prepared状态

有两种方式,一种是同步方式,另一种是异步

同步一般用在本地音视频文件,直接调用prepared()进入Prepared状态

异步一般用在网络数据,需要缓冲时,调用preparedAsync()进入Preparing状态,而后再到Prepared状态

Started状态

上层应用再进入Prepared状态时,可以设置一些属性,比如音量、Looping等等,调用start()进入Started状态。

如果用户重写过onBufferingUpdateListener.onBufferingUpdate,就会开始回调,这个函数是用于更保持跟踪音视频的buffering status

Pause状态

StartedPause 的过程是瞬间的,通过调用pause(),从start恢复过来时,需要playback恢复之前暂停的位置,接着开始播放。

Stopped状态

Start状态也是可以Stop的,而且无论是哪种状态,只要调用了onstopped,就会进入Stopped状态,playback将不会开始,只能重新调用prepare 或者 prepareAsync,处于Prepared才能开始。

Playback Completed状态

ared**才能开始。

Playback Completed状态

顾名思义,即播放完成,当Looping == false,意味着不会循环播放,并且注册过setOnCompletionListener,播放器将会回调onCompletetion.onCompletion函数,代表进入Playback Completed状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1266004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【力扣】189. 轮转数组

【力扣】189. 轮转数组 文章目录 【力扣】189. 轮转数组1. 题目介绍2. 解法2.1 方法一:不太正规,但是简单2.2 方法二:使用额外的数组2.3 方法三:环状替换2.4 方法四:数组翻转 3. Danger参考 1. 题目介绍 给定一个整数…

根据端口查找进程

关闭kibana kibana自带命令 kibana没有提供关闭命令,通过命令 ps -ef|grep kibana查找不到kibana相关的信息。 可以通过进程暴露的端口来查找 netstat -anltp|grep 5601获取到进程号,然后kill掉进程 kill -9 进程号Docker管理Kibana 但是如果使用D…

【开题报告】基于卷积神经网络的图像脑部MRI图像分割

论文题目 基于卷积神经网络的图像脑部MRI图像分割 一、选题意义 1.课题研究的目的和意义 1.1选题目的 脑部疾病是高致残致死率的疾病之一,对人们的生活质量和生命安全都有着十分重大的影响,所以各个国家都开始对脑部疾病的研究重视起来。帕金森、脑胶质…

SpringBoot+网易邮箱登录注册

文章目录 SpringBoot网易邮箱登录注册pom.xmlapplication.ymlsqlUserEmail.javaUserEmailMapper.javaUserEmailMapper.xmlEmailService.javaUserEmailService.javaUserEmailServiceImpl.javaUserEmailController.javaregister1.html 编写前参考 SpringBoot网易邮箱登录注册 po…

webpack如何设置兼容浏览器的范围​browserslist

Browserslist 是前端工程化不可或缺的工具,无论是处理 js 的 babel 还是处理 css 的 postcss,他们背后都有Browserslist 的身影。 一、如何查看查看所有浏览器和它的市场占有率 我们如何知道现在的浏览器那些被废弃、那些市场占有率高,可以…

第13关 解决K8s中Ingress Nginx控制器无法获取真实客户端IP的问题

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维。 这节课带大家探索并分享最全面的解决在使用Kubernetes(K8s)和Ingress-Nginx-Controller中无法获取客户端真实IP问题的视频教程,帮助你快速理解并解决这一问…

SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件

📑前言 本文主要是【Rabbitmq】——SpringBoot项目整合Redis,Rabbitmq发送、消费、存储邮件的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页…

一起学docker系列之十四Dockerfile微服务实践

目录 1 前言2 创建微服务模块2.1 **创建项目模块**2.2 **编写业务代码** 3 编写 Dockerfile4 构建 Docker 镜像5 运行 Docker 容器6 测试微服务7 总结8 参考地址 1 前言 微服务架构已经成为现代软件开发中的一种重要方式。而 Docker 提供了一种轻量级、便携式的容器化解决方案…

贵州乾辰谷材 以科技创新引领绝缘材料领域的新发展

贵州乾辰谷材科技有限公司,这家于2018年10月18日成立的贵州本地企业,已经在绝缘材料领域崭露头角。乾辰谷材不仅在成立短短几年内实现了快速成长,更以其科技创新能力和卓越产品性能赢得了业界和用户的广泛赞誉。 乾辰谷材的创始人王金斗先生&…

RFID资产管理系统全功能详解!高效管理从这里开始!

在现代商业环境中,RFID资产管理系统正成为企业管理不可或缺的先进工具。现代企业管理正处于数字化的浪潮中,而RFID资产管理系统正是这场浪潮中的一颗璀璨明珠。在这篇文章中,我们将全方位解析RFID资产管理系统的功能,助您深入了解…

Vue框架学习笔记——绑定class样式和绑定style样式

文章目录 前文提要class样式的三种绑定方法(图片来自参考链接)style样式(内联形式)总结 前文提要 本人仅做个人学习记录,如有错误,请多包涵 主要学习链接:尚硅谷Vue2.0Vue3.0全套教程丨vuejs从…

redis运维(二十二)redis 的扩展应用 lua(四)

一 最佳实践 ① 铺垫 最佳实践:1、把redis操作所需的key通过KEYS进行参数传递2、其它的lua脚本所需的参数通过ARGV进行传递. redis lua脚本原理 Redis Lua脚本的执行原理 ② 删除指定的脚本缓存 ③ redis集群模式下使用lua脚本注意事项 1、常见报错现象 C…

超卓航科聚国内外专家学者,共推冷喷涂技术的发展与应用

11月24日——26日,冷喷涂技术及其在增材制造中的应用专题会在襄阳召开,来自国内外200多名科技工作者齐聚一堂,共同交流冷喷涂技术的研究与应用。 本次专题研讨会由中国机械工程学会表面工程分会主办,湖北超卓航空科技股份有限公司…

LeetCode.24两两交换链表中的节点

LeetCode.24两两交换链表中的节点 1.问题描述2.解题思路3.代码 1.问题描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示…

Hive数据库与表操作

文章目录 一、准备工作二、Hive数据库操作(一)Hive数据存储(二)创建数据库(三)查看数据库(四)修改数据库信息 一、准备工作 二、Hive数据库操作 (一)Hive数据…

Ultipa参加国际科学会议KGSWC2023

近日,领先的国际科学会议 KGSWC 2023,在西班牙萨拉戈萨大学召开,Ultipa Graph参加。 KGSWC2023是第五届伊比利亚-美洲会议和第四届印度-美洲知识图谱与语义网大会的联合论坛。自2019年成立以来,KGSWC一直是一个重要的学术活动&am…

通过流量监控分析某个部门或客户端网络性能

在当今数字化时代,网络已经成为组织和企业不可或缺的基础设施之一。作为信息传输和数据交互的关键载体,网络的性能对于保障业务的稳定运行和提升工作效率至关重要。因此,对某个部门或客户端网络的性能进行分析和评估,有助于了解当…

PyTorch入门教学——加载数据(Dataset)

1、简介 PyTorch中如何读取数据主要涉及到两个类,分别为Dataset和Dataloader。 Dataset:创建可被Pytorch使用的数据集Dataloader:向模型传递数据本文主要讲解Dataset的使用方法。 2、Dataset 2.1、查看使用方法 打开Anaconda Prompt&…

在表格中显示字典的内容(根据后端返回的数据)vue3

进入页面,调接口,后端返回数据,indexType为0或者1,要用这个数据显示字典的内容 用插槽拿到数据 写一个函数,在模板中使用 const { proxy } getCurrentInstance(); // 字典-指标类型 const { index_type } proxy.u…

java:jpa、Hibernate、Spring Data JPA、ORM以及和mybatis的区别

文章目录 Java连接数据库几种方式JPAHibernate和Spring Data JPAORM框架jpa和mybatis区别Spring Boot JPA使用例子1、创建库和表2、添加依赖3、配置数据源和Hibernate属性4、配置实体类5、创建一个继承JpaRepository的接口:6、创建一个控制器(Controller…