当前位置: 首页 > 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

相关文章:

[Android] MediaPlayer SDK API glance

参考&#xff1a; https://developer.android.com/reference/android/media/MediaPlayer 如何使用MediaPlayer SDK&#xff1a; https://developer.android.com/media/platform/mediaplayer 概述&#xff1a; 音视频的 playback。创建 MediaPlayer 的线程必须和调用 SDK 接口…...

原始手写helloworld并打jar包允许

1.创建文件夹test统一在其中操作 2.创建hello.java文件 【hello.txt改属性为hello.java】并在里面添加代码 public class hello {public static void main(String[] args) {System.out.println("hello world");} } 注意&#xff1a;类名与文件名一致 然后运行…...

maven 的安装与配置(Command ‘mvn‘ not found)修改配置文件后新终端依旧无法识别到 mvn 命令

下载 maven 安装包 wget https://dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz 解压 apache-maven-3.9.4-bin.tar.gz tar -zxvf apache-maven-3.9.4-bin.tar.gz 找到文件解压到的位置&#xff0c;由于解压时我们没有指定路径&#xff0c;因…...

Pycharm无法粘贴外部文本问题

Pycharm无法粘贴外部文本问题 百度找了好多是因为安装了vim&#xff0c;最后发现是因为pycharm粘贴框存在了很多内容导致 操作方法&#xff1a; 1、清理所有缓存的复制内容 ctrlshiftV 可以看到编译器所有缓存下来的复制文本 2、ctrlA然后delete 解决&#xff1a;此时再复…...

学习Java的第四天

目录 一、if选择结构 1、基本if选择结构 语法结构&#xff1a; 流程图&#xff1a; 示例&#xff1a; 2、if-else 选择结构 语法结构&#xff1a; 流程图&#xff1a; 示例&#xff1a; 3、多重if选择结构 语法结构&#xff1a; 流程图&#xff1a; 示例&#xff1a…...

【Javaweb】【瑞吉外卖】登录功能plus--拦截器filterinterceptors实现

上手第二天&#xff0c;做到登录拦截器部分 需求&#xff1a;完成目标是&#xff0c;只有在登录的情况下才想让其访问后端&#xff0c;没有登录禁止访问&#xff0c;并且让其跳转。 这里有一个比较好的思想是&#xff1a;后端程序要主要需要考虑的是拦截接口&#xff0c;不能让…...

关于 Runes 协议及「公开铭刻」发行机制的拓展讨论

撰文&#xff1a;MiX 编辑&#xff1a;Faust&#xff0c;极客 web3 2024 年 3 月 2 日&#xff0c;Runes 生态基础设施项目 Rune alpha 的创始人&#xff0c;在 Github 的公开议题中&#xff0c;与 Runes 协议创始人 Casey 展开了讨论&#xff0c;双方对如何拓展 Runes 协议的…...

chkdsk修复会造成文件丢失吗?chkdsk数据丢失还能恢复吗

在Windows操作系统中&#xff0c;CHKDSK是一个强大的磁盘检查工具&#xff0c;它可以帮助我们诊断并修复硬盘的各种错误。然而&#xff0c;许多用户在运行CHKDSK之前都会担心一个问题&#xff1a;CHKDSK修复会造成文件丢失吗&#xff1f;如果不幸发生了数据丢失&#xff0c;CHK…...

Hypermesh2019快捷键大全

1、F系列 F* | ShiftF* F1 | 打开帮助文件 | color F2 | delete | temp nodes F3 | replace | edges F4 | distance | tran…...

CSS布局——Flexbox基础使用

基础概念 Flexbox布局的概念 Flexbox布局是一种布局的模式&#xff0c;用来在一个维度上为项目设置布局 容器 在HTML中大多数元素例如div、ul、main块元素&#xff0c;span、em、i行内元素都可以作为Flex容器&#xff0c;它的作用是开启一个Flex布局模式&#xff0c;你只需…...

Kubernetes(K8s):容器化应用的航空母舰

一、Kubernetes简介 Kubernetes&#xff08;K8s&#xff09;是一个开源的容器编排系统&#xff0c;它的出现就像是为容器化应用提供了一艘强大的航空母舰。在这艘母舰上&#xff0c;你的应用容器就像是一架架战斗机&#xff0c;Kubernetes负责指挥它们起飞、飞行、降落&#x…...

Java配置49-nginx 反向代理 sftp 服务器

1. 背景 后端服务需要通过部署在跳板机上的 nginx 访问一个外网的 SFTP 服务器。 2. 方法 nginx从 1.9.0 开始&#xff0c;新增加了一个stream模块&#xff0c;用来实现四层协议的转发、代理或者负载均衡等。 首先检查 nginx 版本信息及是否安装了 stream 模块。 进入 ngi…...

Qt添加VTK并绘制图形

文章目录 准备环境使用VS创建Qt Widget项目配置VTK依赖调试C/C链接器 添加vtk窗口测试代码 参考链接&#xff1a; VS2017配置QT环境(详细版)_vs2017 qt-CSDN博客 QT5VTK9.1最新配置方法_qt vtk-CSDN博客 VTK笔记-Qt5.12.11编译VTK9.0.3-QVTKOpenGLNativeWidget-CSDN博客 准…...

VsCode搭建Spring Boot项目环境

VsCode搭建Spring Boot项目环境 1、前提条件&#xff1a;配置Java环境 下载安装JDK配置环境变量 2、VsCode配置SpringBoot环境 安装扩展 配置Maven 找到Maven配置文件&#xff0c;进行打开settings.json&#xff0c;添加如下代码&#xff1a; "workbench.iconThem…...

(黑马出品_05)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

&#xff08;黑马出品_05&#xff09;SpringCloudRabbitMQDockerRedis搜索分布式 微服务技术分布式搜索 今日目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2.ELK技术栈1.1.3.elasticsearch和lucene1.1.4.为什么不是其他搜索技…...

window mysql 安装出现的问题

1.安装到最后时&#xff0c;报错&#xff1a;authentication_string doesnt have a default value 解决办法&#xff1a; 1.不要关掉该页面&#xff0c;点击skip。 然后单击 back 回退到如下界面 2.去掉 Enable Strict Mode。 不要勾选 2. 最后一步&#xff1a;Start Servic…...

【3GPP】【核心网】【5G】5G核心网协议解析(二)(超详细)

5G UE 附着过程 UE AMF ----------------- 注册请求(Registration Request) ----------------------> <--------------- 鉴权请求(Authentication Request) ------…...

物联网带来的六大运营挑战

物联网现在被广泛认为是一种变革力量。根据Juniper Research的调查&#xff0c;到2020年底&#xff0c;将有385亿台设备连接到互联网&#xff0c;自2015年以来增长了285&#xff05;。 但是随着更多的设备互连&#xff0c;故障的数量也会增加。例如&#xff0c;根据Juniper的数…...

【ETCD】简介安装常用操作---图文并茂详细讲解

目录 一 简介 1.1 etcd是什么 1.2. 特点 1.3. 使用场景 1.4 关键字 1.5 工作原理 二 安装 2.1 etcd安装前介绍 2.2 安装 2.3 启动 2.4 创建一个etcd服务 三 常用操作 一 简介 1.1 etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目&#xff0c;它的目标是构建…...

第四篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas生物信息学领域应用

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas生物学数据操作应用介绍二、数据加载与清洗示例代码三、数据分析与统计示例代码四、数据可视化示例代码五、基因组数据分析示例代码六、蛋白质数据分析示例代码七、生物医学图像…...

RMBG-2.0实测参数详解:batch_size=1/resize=1024/alpha_threshold=0.5设定依据

RMBG-2.0实测参数详解&#xff1a;batch_size1/resize1024/alpha_threshold0.5设定依据 1. 项目背景与核心价值 RMBG-2.0&#xff08;BiRefNet&#xff09;是目前开源领域最强大的图像抠图模型之一&#xff0c;它在处理复杂边缘细节方面表现出色&#xff0c;特别是对于毛发、…...

手把手教你配置Figma MCP:打造属于你自己的AI驱动设计组件库(以阅读题为例)

智能设计革命&#xff1a;用Figma MCP构建AI驱动的交互式学习组件库 当设计系统遇上生成式AI&#xff0c;一场关于效率与智能化的变革正在悄然发生。在Figma中构建可动态响应数据的智能组件库&#xff0c;已成为中高级UI/UX设计师突破传统设计边界的必备技能。本文将深入解析如…...

告别重复编码:用快马AI自动生成软件库e7c9的高效调用代码

作为一名经常和第三方库打交道的开发者&#xff0c;我深刻体会到手动编写调用代码的繁琐。尤其是像e7c9这样功能强大的软件库&#xff0c;虽然封装完善&#xff0c;但每次调用都需要反复查阅文档、处理边界情况&#xff0c;效率实在不高。最近尝试用InsCode(快马)平台的AI辅助生…...

高效代码分析利器:cloc工具全场景使用指南

1. 为什么你需要cloc这个代码统计神器 第一次接手一个遗留项目时&#xff0c;我盯着密密麻麻的目录树发愁&#xff1a;这堆代码到底有多少实际内容&#xff1f;注释占比多少&#xff1f;不同语言的文件各有多少&#xff1f;直到同事推荐了cloc工具&#xff0c;输入一行命令就得…...

2026金三银四变天了:企业要的是能用的人,不是“有潜力的人“

2026金三银四变天了&#xff1a;企业要的是"能用的人"&#xff0c;不是"有潜力的人" 3月了&#xff0c;又到了传说中的"金三银四"。 往年这个时候&#xff0c;朋友圈里都是"拿到offer了""跳槽涨薪30%"的好消息。但今年&…...

AssetStudio终极指南:快速免费提取Unity游戏模型、纹理与音频资源

AssetStudio终极指南&#xff1a;快速免费提取Unity游戏模型、纹理与音频资源 【免费下载链接】AssetStudio 项目地址: https://gitcode.com/gh_mirrors/asse/AssetStudio AssetStudio是一款功能强大的开源工具&#xff0c;专为Unity游戏资源提取设计&#xff0c;能够轻…...

串口通信与Modbus协议:工业自动化中的黄金搭档

1. 工业自动化的通信基石&#xff1a;串口与Modbus为何成为黄金组合 在工厂车间的控制柜里&#xff0c;PLC正以每秒数十次的频率采集着温度传感器的数据&#xff1b;在自动化生产线上&#xff0c;机械臂的每个动作都精准同步着传送带的节奏。这些看似神奇的工业魔法&#xff0c…...

推荐8款AI辅助论文写作工具(如爱毕业aibiye)与入门使用教程

人工智能技术在学术研究中的深度整合&#xff0c;显著优化了学术论文的创作效能与成果质量。通过文献智能分析、语义生成引擎和语言优化算法等核心技术&#xff0c;8款前沿工具系统覆盖了知识图谱构建、学术内容生成、多维度文本增强等核心研究场景。这些智能化平台基于深度学习…...

大白话讲ReAct:大模型的“边想边干”

一、先搞懂&#xff1a;ReAct到底是个啥&#xff1f;ReAct&#xff0c;说白了就是“Reasoning&#xff08;动脑想&#xff09; Acting&#xff08;动手做&#xff09;”的组合&#xff0c;翻译过来就是“边思考、边行动、看反馈、再调整”——跟咱们普通人解决问题的思路&#…...

如何快速掌握正则表达式示例生成器:从入门到精通的完整指南

如何快速掌握正则表达式示例生成器&#xff1a;从入门到精通的完整指南 【免费下载链接】regexp-examples Generate strings that match a given regular expression 项目地址: https://gitcode.com/gh_mirrors/re/regexp-examples 正则表达式示例生成器&#xff08;reg…...