鸿蒙(API 12 Beta3版)【本地媒体会话概述】 音视频播控服务

news2024/11/24 8:27:42

交互过程

本地媒体会话的数据源均在设备本地,交互过程如图所示。

1

此过程中涉及两大角色,媒体会话提供方和媒体会话控制方。

说明

媒体会话控制方为系统应用,三方应用可以成为媒体会话提供方。

本地媒体会话中,媒体会话提供方通过媒体会话管理器和媒体会话控制方进行信息交互:

  1. 媒体会话提供方通过AVSessionManager创建AVSession对象。
  2. 媒体会话提供方通过AVSession对象,设置会话元数据(媒体ID、标题、媒体时长等)、会话播放属性(播放状态、播放倍速、播放位置等)等。
  3. 媒体会话控制方通过AVSessionManager创建AVSessionController对象。
  4. 媒体会话控制方通过AVSessionController对象可以监听对应会话元数据变化、播放属性变化等。
  5. 媒体会话控制方通过AVSessionController对象还可以向媒体会话发送控制命令。
  6. 媒体会话提供方通过AVSession对象可以监听来自媒体会话控制方的控制命令,例如:“play”播放、“playNext”播放下一首、“fastForward”快进、 “setSpeed”设置播放倍数等。

媒体会话管理器

媒体会话管理器(AVSessionManager),提供了管理AVSession的能力,可以创建AVSession、创建AVSessionController、发送系统控制事件,也支持对AVSession的状态进行监听。

实际上,AVSessionManager与AVSession、AVSessionController对象不同,并不是一个具体的对象,它是媒体会话的根命名域。在实际编程过程中,可以通过如下方式引入:

import { avSession as AVSessionManager } from '@kit.AVSessionKit';

根命名域中的所有方法都可以作为AVSessionManager的方法。

例如,媒体会话提供方通过AVSessionManager创建媒体会话的示例如下所示:

// 创建session
let context: Context = getContext(this);
async function createSession() {
  let session: AVSessionManager.AVSession = await AVSessionManager.createAVSession(context, 'SESSION_NAME', 'audio');
  console.info(`session create done : sessionId : ${session.sessionId}`);
}

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

在这里插入图片描述

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。

  • 《鸿蒙 (OpenHarmony)开发学习视频》
  • 《鸿蒙生态应用开发V2.0白皮书》
  • 《鸿蒙 (OpenHarmony)开发基础到实战手册》
  • OpenHarmony北向、南向开发环境搭建
  • 《鸿蒙开发基础》
  • 《鸿蒙开发进阶》
  • 《鸿蒙开发实战》

在这里插入图片描述

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿

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

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

相关文章

[大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型

[大模型实战] DAMODEL云算力平台部署LLama3.1大语言模型 目录 一、LLama3.1二、DAMODEL云算力平台2.1 提供的服务2.1.1 AI训练2.1.2 AI推理2.1.3 高性能计算2.1.4 图像/视频渲染2.1.5 定制化部署 2.2 支持的GPU 三、在DAMODEL部署LLama3.13.1 在DAMODEL创建实例&…

【案例43】打开节点-后台任务日志优化案例

问题现象 通过SPR日志发现 打开节点-后台任务日志节点sql调用严重。 通过nmc查看,后台线程耗时20s ,基本都卡在sql层面 一直在执行如下sql selectl.pk_workingtasklog frompub_workingtasklog l inner joinpub_alertregistry ron l.pkregistry r.pk_a…

Black Forest Labs 的 Flux——文本转图像模型的下一个飞跃,它比 Midjourney 更好吗?

一、前言 Black Forest Labs是开创性稳定扩散模型的团队,现已发布Flux——一套最先进的模型,有望重新定义 AI 生成图像的功能。但 Flux 是否真正代表了该领域的飞跃?它与 Midjourney 等行业领导者相比如何?让我们深入探索 Flux 的…

【Kubernetes】Service 概念与实战

Service 概念与实战 1.通过 Service 向外部暴露 Pod2.Service 的多端口设置3.集群内部的 DNS 服务4.无头 Service 在 Kubernetes 中部署的应用可能对应一个或者多个 Pod,而每个 Pod 又具有独立的 IP 地址。Service(服务)能够为一组功能相同的…

DI (providedIn: XXXModule)

angular版本为^17.3.0; 依赖注入Module 代码结构如下: 点击后为 demo2 works!demo2 providedIn Demo1Module depdemo2 works!demo2 providedIn Demo1Module 打包后大小为 改写为 demo2去掉 imports: [Demo1Module], 打包后大小为 结果比较&#…

DAMA学习笔记(十五)-数据管理组织与角色期望

1.引言 随着数据领域的快速发展,组织需要改进管理和治理数据的方式。当前,大多数组织正面临着越来越多的数据。这些数据格式多样、数量 庞大,并来源于不同的渠道。由于数据数量和种类的增加,加剧了数据 管理的复杂性。与此同时&am…

shiro注解不起作用:shiro进行权限校验时,@RequireRoles(“admin“)注解不起作用的解决方法

今天在写前后端分离项目时,用jwt加shiro进行登录权限校验时,RequireRoles("admin")注解不起作用,记录一下。 前提:数据库里面的user_type代表用户类型 :0普通用户 ;1:专家&#xff1…

Introduction to Snapdragon Profiler (Snapdragon 分析器)

Introduction to Snapdragon Profiler {Snapdragon 分析器} 1. Snapdragon Profiler2. Release Notes3. Tools and resourcesReferences Snapdragon Profiler (骁龙分析器) https://www.qualcomm.com/developer/software/snapdragon-profiler Snapdragon Profiler Documentati…

HAProxy基本配置及参数实操

目录 ​编辑什么是负载均衡 为什么用负载均衡 四层和七层的区别 实验环境 实验步骤 webserver上安装nginx 启动nginx 安装haproxy 编辑配置文件 多进程 多线程 SORRY SERVER 访问重定向 maxconne最大可承受连接 socat 工具 常用示例 ha p r ox y 的 算 法 静 …

思科静态路由配置1

#路由协议实现# #任务一静态路由配置1# #1配置Switch-A的名称及其接口IP地址 Switch>enable Switch(config)#hostname Switch-A Switch-A(config)#ip routing Switch-A(config)#int f0/1 Switch-A(config-if)#no switchport Switch-A(config-if)#ip add 192.168.10…

leetcode日记(72)最大矩形

依旧是看了答案才知道大概方法…太难想到了 和上一道题思路相似!可以直接调用上题的函数,只不过调用前的准备非常难想到,就是建造形状相同的矩阵,第i行j列的元素是i行中j列前相邻的“1”的个数。 class Solution { public:int m…

RS®ZN-Z8x 开关矩阵

R&SZN-Z8x 开关矩阵 专为多端口矢量网络分析仪测量而设计 R&SZN-Z8x 开关矩阵经过优化设计,专门用于罗德与施瓦茨的矢量网络分析仪。这款经济高效的多方位解决方案可用于多端口设备或多个设备的简单和复杂的测量任务。开关矩阵支持宽频率范围&#xff0…

北斗科技助力运动健身:开启智能健身新篇章

近年来,随着科技的迅猛发展,智能化设备已逐渐渗透到健身领域,为运动健身爱好者带来了无尽的利好。作为中国自主研发的全球卫星导航系统,北斗定位技术凭借其高精度和可靠性,正在成为运动健身领域的新宠。本文将深入探讨…

Git相关教程

版本控制 学习目标 理解版本控制的必要性了解常用的版本控制方式熟悉 Git 的使用方法 什么是版本控制 可以把一个版本控制系统理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照(称之为…

Vue3 el-table里input设置为必填

Vue3 el-table里input设置为必填 Vue3 el-table里input设置为必填页面效果实现代码 Vue3 el-table里input设置为必填 页面效果 实现代码 <template><el-form :model"tableData" ref"formRef"><el-table :data"tableData" style…

MPU6050详细介绍

一、MPU6050介绍 MPU6050是由三个陀螺仪和三个加速度传感器组成的6轴运动处理组件 内部主要结构&#xff1a;陀螺仪、加速度计、数字运动处理器DMP&#xff08;Digital Motion Processor&#xff09; MPU6050有两个IIC接口&#xff0c;第一IIC接口可作为主接口给单片机传输数…

对信/ 对信开源系统+后台+PC+H5 (多圈)

系统商标名称&#xff1a;对信 核心&#xff1a;PHP8.0 CodeIgniter4框架 后台管理&#xff1a;PHP&#xff0c;html&#xff0c;jquery&#xff0c;迅锐&#xff0c;css3 PAI接口&#xff1a;php生成json格式 电脑PC端&#xff1a;html&#xff0c;jquery&#xff0c;css…

数据结构 之 常见的树

文章目录 树的概念术语&#xff08;以二叉树举例&#xff09; 二叉树遍历满二叉树完全二叉树二叉搜索树&#xff08;有序二叉树&#xff09; 哈夫曼树术语补充WPL的比较&#xff08;直接上图&#xff09;哈夫曼树的构建过程哈夫曼编码 非平衡树 & 平衡树(avl树)非平衡树转平…

无人机之飞行过程天气影响篇

在无人机飞行中&#xff0c;风速、雨雪等天气条件是飞手必须考虑的重要因素。这些天气条件不仅会影响飞行的稳定性&#xff0c;还可能带来安全隐患。以下是风速及雨雪对无人机飞行的影响&#xff0c;以及飞行中的注意事项&#xff1a; 一、风速对无人机飞行的影响 风力较大时&…

写歌准备:设计歌曲的段落结构的方法,记录和分享一些想法与感悟

我们都知道歌曲的三大元素&#xff1a;旋律、和声、节奏。但若要正式完成一首完整的作品&#xff0c;还要加上有计划的编曲。就像画画一样&#xff0c;除了有创造主题&#xff0c;还要懂得构图。 编曲其中一个重要步骤就是规划歌曲的「段落」。职业编曲/作曲人甚至会基于商业考…