当前位置: 首页 > news >正文

安卓手机APP开发__媒体3格式转换器__常见问题解答

安卓手机APP开发__媒体3格式转换器__常见问题解答

目录

1 为什么在示例的APP中我不能读取到本地的文件?

2 在一个特定的设备为什么导出失败?

3 媒体3格式转换器支持转码(或者是录制)远程的媒体吗?

4 媒体3格式转换器支持8K输入吗?

5 媒体3格式转换器如何关联到执行可兼容的媒体转码?

6 我如何能够降低导出延迟或者是增加流量?



1 为什么在示例的APP中我不能读取到本地的文件?

从安卓11(API级别30)开始,有作用域的存储强化了对直接读取文件系统的阻止力度。
在开发期间,为了手工的测试,通过在示例APP的配置文件中加上管理外部存储的权限,
实现对本地文件的读取是可行的方法。

<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

然后在使用adb进行授权:

adb shell appops set --uid androidx.media3.demo.transformer \MANAGE_EXTERNAL_STORAGE allow

2 在一个特定的设备为什么导出失败?

用重现该问题的足够多的信息来描述这个问题,并发送给媒体3的问题跟踪器。
设备专用的问题能够被加入到库中,来改善可兼容性。


3 媒体3格式转换器支持转码(或者是录制)远程的媒体吗?

媒体3格式转换器支持远程的先进的数据流,包括媒体文件容器,例如MP4。

在非常差的网络条件下,因为缓冲远程的媒体失败,而导致导出失败。
你能通过设置maxDelayBetweenMuxerSamplesMs这个参数,来覆盖
媒体3格式转换器的默认行为:

Kotlin


Transformer.Builder(context).setMaxDelayBetweenMuxerSamplesMs(C.TIME_UNSET).build()

在C.TIME_UNSET完全地取消超时,但是如果你的APP运行在芯片上,当
MediaCodec能够阻塞时,你可能要设置一个非常大的非零的超时。


4 媒体3格式转换器支持8K输入吗?

媒体3格式转换器以一个格式不可知的方式被实现出来的,所以它不局限于处理8K的视频。
但是,在设备上的硬件能力可能意味着导出是不成功的。
例如,甚至是在设备上能够捕捉到8K的信号,它可能没有能力解码和重编码为8K的视频,
因为,这超过了可用的硬件的codec的能力,或者是超过了RAM资源的能力。


5 媒体3格式转换器如何关联到执行可兼容的媒体转码?

从安卓12(API级别31)开始,可兼容的媒体转码是安卓平台的一个特性,它把媒体转换
成APP的支持格式。如果你为了使用这个特性,读一个不兼容的格式的媒体文件,
引起了这个文件被按需要进行转码,并且结果被缓存起来,为之后的读取操作做准备。

媒体3格式转换器也支持格式的转换,但是作为一个支持库,它是可用的,并且
APP能完全控制转码的操作。


6 我如何能够降低导出延迟或者是增加流量?

媒体3格式转换器依赖于MediaCodec,来实现硬件的加速的解码和编码,并且
OpenGL用于处理视频的帧。基于在经典设备上的我们的度量,媒体3格式转换器的流量上
的限制因素是硬件的MediaCodec编码器的流量,对于用例来说没有重量级的影响处理能力。
这以相同的方式影响到其它的实现。例如,平台可兼容的转码特性与媒体3格式转换器
有相似的性能表现。

示例APP的调试预视着有巨大地减少流量,所以当测试一个示例APP的发布版时,
关闭预览特性,来得到一个真实的性能。

相关文章:

安卓手机APP开发__媒体3格式转换器__常见问题解答

安卓手机APP开发__媒体3格式转换器__常见问题解答 目录 1 为什么在示例的APP中我不能读取到本地的文件&#xff1f; 2 在一个特定的设备为什么导出失败&#xff1f; 3 媒体3格式转换器支持转码&#xff08;或者是录制&#xff09;远程的媒体吗&#xff1f; 4 媒体3格式转换…...

leetcode-有重复数字的全排列-98

题目要求 思路 1.同【没有重复项的全排列-97】这个题一样&#xff0c;都是递归的题&#xff0c;区别在于这个可能会包含重复的数字&#xff0c;因此&#xff0c;不能只是简单的通过两个值是否相等然后用标志位标记&#xff0c;而是新增了一个数组&#xff0c;这个数组专门用于…...

Unity数据持久化之XML

目录 数据持久化XML概述XML文件格式XML基本语法XML属性 C#读取存储XMLXML文件存放位置C#读取XML文件C#存储XML文件 实践小项目必备知识点XML序列化&#xff08;不支持字典&#xff09;XML反序列化IXmlSerializable接口让Dictionary支持序列化反序列化 数据持久化XML概述 什么是…...

Leetcode 226:翻转二叉树

给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 思路&#xff1a;使用递归 //使用前序遍历翻转树public static TreeNode invertTree(TreeNode root){if(rootnull) return root;swap(root);invertTree(root.left);invertTree(root.rig…...

柯里化与无参装饰器

柯里化 柯里化的概念&#xff1a;柯里化&#xff08;Currying&#xff09;在Python中是一种编程技术&#xff0c;它将原本接受多个参数的函数转换为一系列接受单个参数的函数。这种方法以逻辑学家Haskell Curry的名字命名。 简而言之就是将一次函数调用变成先放入一个参数得到…...

Spring事务失效的场景

1. 事务方法执行期间出现了异常&#xff0c;但是并未指定rollbackFor: Spring默认只会在遇到error和RunTimeException时才会回滚。 public boolean rollbackon ( Throwable ex){return (ex instanceof RuntimeException || ex instanceof Error); } 2. 事务方法执行期间出现了…...

Python基础学习之datetime模块

在Python编程中&#xff0c;处理日期和时间是一个常见的需求。Python的datetime模块提供了丰富的类和方法&#xff0c;用于表示和操作日期、时间、时间间隔等。本文将详细介绍Python的datetime模块&#xff0c;并给出一些实用的示例。 1. datetime模块概览 datetime模块是Pyt…...

在AI大模型中全精度和半精度参数是什么意思?

环境&#xff1a; 大模型中 问题描述&#xff1a; 在AI大模型中全精度和半精度参数是什么意思&#xff1f; 解决方案&#xff1a; 在深度学习和高性能计算领域&#xff0c;"全精度"和"半精度"通常指的是模型中使用的数值表示的精度&#xff0c;具体涉…...

刷题记录2

文章目录 刷题记录21047.删除字符串中的所有相邻重复项150.逆波兰表达式求值239.滑动窗口最大值347.前k个高频元素144.二叉树前序遍历(145、94后序、中序)102.二叉树的层序遍历226.翻转二叉树101.对称二叉树104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数 …...

【配置】Docker搭建JSON在线解析网站

一个python朋友需要&#xff0c;顺便做一下笔记 正常用菜鸟的就够了&#xff0c;点下面 JSON在线解析 云服务器打开端口8787 连接上docker运行 docker run -id --name jsonhero -p 8787:8787 -e SESSION_SECRETabc123 henryclw/jsonhero-webhttp://ip:8787访问 Github&…...

2024.5.2 —— LeetCode 高频题复盘

目录 151. 反转字符串中的单词129. 求根节点到叶节点数字之和104. 二叉树的最大深度101. 对称二叉树110. 平衡二叉树144. 二叉树的前序遍历543. 二叉树的直径48. 旋转图像98. 验证二叉搜索树39. 组合总和 151. 反转字符串中的单词 题目链接 class Solution:def reverseWords(s…...

ThreeJS:光线投射与3D场景交互

光线投射Raycaster 光线投射详细介绍可参考&#xff1a;https://en.wikipedia.org/wiki/Ray_casting&#xff0c; ThreeJS中&#xff0c;提供了Raycaster类&#xff0c;用于进行鼠标拾取&#xff0c;即&#xff1a;当三维场景中鼠标移动时&#xff0c;利用光线投射&#xff0c;…...

docker挂载数据卷-以nginx为例

目录 一、什么是数据卷 二、数据卷的作用 三、如何挂载数据卷 1、创建nginx容器挂载数据卷 2、查看数据卷 3、查看数据卷详情 4、尝试在宿主机修改数据卷 5、查看容器内对应的数据卷目录 6、 访问nginx查看效果 ​​​​​​​一、什么是数据卷 挂载数据卷本质上就是实…...

Docker-compose部署Fastapi项目

Docker-compose部署Fastapi、postgres、Redis、Nginx) 之前有写过使用容器部署的方式&#xff0c;这次尝试使用Docker-compose试一次大胆的尝试 使用容器的方式部署只是掌握这项技能的基础&#xff0c;在使用Docker-compose的过程中会有些稍许的不同。毕竟踩过的坑才算是跨过去…...

Eigen求解线性方程组

1、线性方程组的应用 线性方程组可以用来解决各种涉及线性关系的问题。以下是一些通常可以用线性方程组来解决的问题&#xff1a; 在实际工程和科学计算中&#xff0c;求解多项式方程的根有着广泛的应用。 在控制系统的设计中&#xff0c;我们经常需要求解特征方程的根来分析…...

7、Java基本数据类型的使用细节探讨(超详细版本)

Java基本数据类型的使用细节探讨 一、整数类型二、浮点数三、字符型四、布尔型 我觉得基本数据类型大家学计算机的应该都懂&#xff0c;但是韩顺平老师讲的基本类型的使用细节我觉得有必要记录一下&#xff0c;重新学的时候才发现有了新的感悟&#xff01; 一、整数类型 使用细…...

MFC实现点击列表头进行排序

MFC实现点击列表头排序 1、添加消息处理函数 在列表窗口右键&#xff0c;类向导。选择 IDC_LIST1&#xff08;我的列表控件的ID&#xff09;&#xff0c;消息选择LVN_COLUMNCLICK。 2、消息映射如下 然后会在 cpp 文件中生成以下函数 void CFLashSearchDlg::OnLvnColumnclic…...

用龙梦迷你电脑福珑2.0做web服务器

用龙梦迷你电脑福珑2.0上做web服务器是可行的。已将一个网站源码放到该电脑&#xff0c;在局域网里可以访问网站网页。另外通过在同一局域网内的一台windows10电脑上安装花生壳软件&#xff0c;也可以在外网访问该内网服务器网站网页。该电脑的操作系统属于LAMP。在该电脑上安装…...

秋招后端开发面试题 - JVM类加载机制

目录 JVM类加载机制前言面试题能说一下类的生命周期吗&#xff1f;类加载的过程知道吗&#xff1f;类加载器有哪些&#xff1f;什么是双亲委派机制&#xff1f;为什么要用双亲委派机制&#xff1f;如何破坏双亲委派机制&#xff1f;如何判断一个类是无用的类&#xff1f; JVM类…...

OceanBase 分布式数据库【信创/国产化】- OceanBase 配置项和系统变量概述

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase 配置项和系统变量概述前言OceanBase 数据更新架构OceanBase 配置项和系统变量概述配置项配置项分类配置项查询系统变量系统变量分类系统变量查询配置项与系统变量的区分OceanBase 分布式数据库…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

【JavaEE】-- HTTP

1. HTTP是什么&#xff1f; HTTP&#xff08;全称为"超文本传输协议"&#xff09;是一种应用非常广泛的应用层协议&#xff0c;HTTP是基于TCP协议的一种应用层协议。 应用层协议&#xff1a;是计算机网络协议栈中最高层的协议&#xff0c;它定义了运行在不同主机上…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...