安卓手机APP开发__媒体开发部分__检索元数据

安卓手机APP开发__媒体开发部分__检索元数据

目录

在播放期间

没有播放时

动作照片


在播放期间

媒体的元数据在播放期间能以多种方式来检索。最正常不过的方法
是监听Player.Listener这个监听器的方法onMediaMetadataChanged的事件,
这将提供一个可以使用的MediaMetadata对象,它有例如标题和相册艺术家等属性。
还有,调用播放器的getMediaMetadata方法可以返回相同的对象。

Kotlin

override fun onMediaMetadataChanged(mediaMetadata: MediaMetadata) {mediaMetadata.title?.let(::handleTitle)
}

如果你的APP需要读取特定的Metadata.Entry对象,那么,它应该监听
Player.Listener的onMetadata方法。还有如果需要的是静态数据,能
通过TrackSelections的getFormat方法。

没有播放时

如果不需要播放,使用MetadataRetriever 来得到元数据是更加高效的,
因为它避免了创建和准备一个播放器。


Kotlin


val trackGroupsFuture = MetadataRetriever.retrieveMetadata(context, mediaItem)
Futures.addCallback(trackGroupsFuture,object : FutureCallback<TrackGroupArray?> {override fun onSuccess(trackGroups: TrackGroupArray?) {if (trackGroups != null) handleMetadata(trackGroups)}override fun onFailure(t: Throwable) {handleFailure(t)}},executor
)

动作照片

抽取一个动作照片的元数据也是有可能的,包括图像和视频的长度。
例如,如下的格式被支持:

谷歌和三星的照相机APP记录了JPEG格式的动作照片。这个格式是
ExoPlayer可播放的,并且相关的元数据也是能被检索的。使用
MetadataRetriever就行了。

谷歌和三星的照相机APP记录了HEIC格式的动作照片。这个格式是
ExoPlayer暂时还不可播放的,但相关的元数据是能被检索的。使用
MetadataRetriever就行了。

对于动作照片,TrackGroupArray得到了MetadataRetriever包括了
TrackGroup,这个TrackGroup有一个单独的格式,格式里有
MotionPhotoMetadata的元数据。

Kotlin

0.until(trackGroups.length).asSequence().mapNotNull { trackGroups[it].getFormat(0).metadata }.filter { metadata -> metadata.length() == 1 }.map { metadata -> metadata[0] }.filterIsInstance<MotionPhotoMetadata>().forEach(::handleMotionPhotoMetadata)

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

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

相关文章

苍穹外卖day1--开发环境搭建

整体结构 前端&#xff1a;管理端&#xff08;Web&#xff09; 用户端&#xff08;小程序&#xff09; 后端&#xff1a;后端服务&#xff08;Java&#xff09; 前端工程基于ngnix运行 启动nginx&#xff1a;双击nginx.exe即可启动nginx服务&#xff0c;访问端口号为80 后端…

Xinstall:实现注册后自动绑定,提升用户体验

在移动互联网时代&#xff0c;App的注册与绑定流程对于用户体验至关重要。繁琐的注册步骤和手动绑定操作往往会让用户望而却步&#xff0c;导致用户流失。为了解决这一问题&#xff0c;Xinstall品牌推出了注册后自动绑定功能&#xff0c;极大提升了用户体验。 Xinstall的自动…

C#语言进阶(一)—委托 第一篇

总目录 C# 语法总目录 系列链接 C#语言进阶(一) 委托 第一篇 C#语言进阶(一) 委托 第二篇 委托 第一篇 委托 第一篇1. 基本用法2.委托作为方法参数3.多播委托 委托 第一篇 委托类似于CPP中的函数指针。它定义了一个方法类型&#xff0c;这个方法类型有返回类型和形参&…

用户的流失预测分析

项目背景 随着电信行业的持续发展&#xff0c;运营商们开始更加关注如何扩大他们的客户群体。研究表明&#xff0c;获取新客户所需的成本要远高于保留现有客户的成本。因此&#xff0c;在激烈的竞争中&#xff0c;保留现有客户成为了一个巨大的挑战。在电信行业中&#xff0c;…

再拓信创版图-Smartbi 与东方国信数据库完成兼容适配认证

近日&#xff0c;思迈特商业智能与数据分析软件 [简称&#xff1a;Smartbi Insight] V11与北京东方国信科技股份有限公司 &#xff08;以下简称东方国信&#xff09;CirroData-OLAP分布式数据库V2.14.1完成兼容性测试。经双方严格测试&#xff0c;两款产品能够达到通用兼容性要…

TBWeb开发版V3.2.6免授权无后门Chatgpt系统源码下载及详细安装教程

TBWeb系统是基于 NineAI 二开的可商业化 TB Web 应用&#xff08;免授权&#xff0c;无后门&#xff0c;非盗版&#xff0c;已整合前后端&#xff0c;支持快速部署&#xff09;。相比稳定版&#xff0c;开发版进度更快一些。前端改进&#xff1a;对话页UI重构&#xff0c;参考C…

数据可视化(六):Pandas爬取NBA球队排名、爬取历年中国人口数据、爬取中国大学排名、爬取sina股票数据、绘制精美函数图像

Tips&#xff1a;"分享是快乐的源泉&#x1f4a7;&#xff0c;在我的博客里&#xff0c;不仅有知识的海洋&#x1f30a;&#xff0c;还有满满的正能量加持&#x1f4aa;&#xff0c;快来和我一起分享这份快乐吧&#x1f60a;&#xff01; 喜欢我的博客的话&#xff0c;记得…

面试(05)————Redis篇

目录 一、项目中哪些地方使用了redis 问题一&#xff1a;发生了缓存穿透该怎么解决&#xff1f; 方案一&#xff1a;缓存空数据 方案二&#xff1a;布隆过滤器 模拟面试 问题二&#xff1a; 发生了缓存击穿该怎么解决&#xff1f; 方案一&#xff1a;互斥锁 方案二&#xff…

Python数据可视化:频率统计条形图countplot()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python数据可视化&#xff1a; 频率统计条形图 countplot() [太阳]选择题 请问关于以下代码表述正确的选项是&#xff1f; import seaborn as sns import matplotlib.pyplot as plt data { …

断言(Assertion)在IT技术中的确切含义— 基于四类典型场景的分析

当“断言”&#xff08;Assertion&#xff09;一词成为IT术语时&#xff0c;语义的混沌性和二义性也随之而生。那么&#xff0c;何为断言&#xff1f;断言何为&#xff1f;实际上&#xff0c;只需分析四种典型场景&#xff0c;确切答案和准确描述就将自然显现。 在SAML&#xf…

上海计算机学会2020年7月月赛C++丙组T2感应门

题目描述 感应门会在有人经过的时候自动打开&#xff0c;冷却 d 秒后自动关闭。如果有人在感应门打开的状态下通过&#xff0c;那么冷却时间会重置&#xff0c;重新冷却 d 秒后再关闭。 在一段时间内&#xff0c;有 n 个人陆续通过了感应门&#xff0c;他们通过感应门的时间点…

Scikit-Learn

机器学习中的重要角色 Scikit-Leran&#xff08;官网&#xff1a;https://scikit-learn.org/stable/&#xff09;&#xff0c;它是一个基于 Python 语言的机器学习算法库。Scikit-Learn 主要用 Python 语言开发&#xff0c;建立在 NumPy、Scipy 与 Matplotlib 之上&#xff0c;…

【python】使用python和selenium实现某平台自动化上传作品的全步骤

第一&#xff0c;我们需要下载python并安装 下载地址&#xff1a;https://www.python.org/downloads/release/python-3123/ 3.x版本的python自带pip工具&#xff0c;因此不需要额外下载。 ModuleNotFoundError: No module named seleniumpip用于下载python适用的各类模块&…

Proxy 代理

意图 为其它对象提供一种代理以控制这个对象的访问。 结构 Proxy保存一个引用使得代理可以访问实体&#xff1b;提供一个与Subject的接口相同的接口&#xff0c;使代理可以用来替代实体&#xff1b;控制实体的存取&#xff0c;并可能负责创建和删除它&#xff1b;其他功能依赖…

关于游戏IP的小讨论

大家好&#xff0c;我是阿赵。   我们平常玩的游戏&#xff0c;很多都是有知识产权(Intellectual Property,简称IP)的。比如游戏内容是某著名动漫、电视剧或者小说之类。阿赵我最近一年多以来&#xff0c;正在做一个日本著名动画IP的游戏。   这个日本动漫&#xff0c;在我…

用户体验至上:独立站脱颖而出的关键要素解析

在数字化时代&#xff0c;独立站成为了许多品牌和企业展示自身形象、推广产品、建立客户联系的重要平台。然而&#xff0c;要想在众多的独立站中脱颖而出&#xff0c;吸引并留住用户&#xff0c;良好的用户体验至关重要。本文Nox聚星将和大家探讨如何做好独立站的用户体验&…

【Linux深造日志】运维工程师必会Linux常见命令以及周边知识!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位宝子们好啊&#xff01;我是博主鸽芷咕。日志这个东西我相信大家都不陌生&#xff0c;在 linxu/Windows 系统…

【自定义类型详解】完结篇——联合体(共用体)与枚举详解

先赞后看已成习惯&#xff01;&#xff01;&#xff01; 联合体 1. 联合体的定义 联合体又叫共用体&#xff0c;它是一种特殊的数据类型&#xff0c;允许您在相同的内存位置存储不同的数据类型。给联合体其中⼀个成员赋值&#xff0c;其他成员的值也会跟着变化。 联合体的结…

kaggle 房价预测 得分0.53492

流程 导入需要的包引入文件,查看内容数据处理调用模型准备训练输出结果 导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.linear_model i…

独孤思维:集中火力赚钱,单点爆破

独孤的粉丝体量比较小&#xff0c;不如很多大咖。 所以&#xff0c;独孤给自己设定了一个规则&#xff1a; 即自己体量不够大的时候&#xff0c;这一段时间&#xff0c;只主推一个项目。 独孤之前同时推了好几个项目的时候。 好多粉丝过来问&#xff0c;独孤&#xff0c;你…