鸿蒙(API 12 Beta3版)【播控特性简介】分布式媒体会话

使用媒体播控,可以简单高效地将音视频投放到其他HarmonyOS设备上播放,如在手机上播放的音视频,可以投到2in1设备上继续播放。

HarmonyOS提供了统一的应用内音视频投播功能设计,通过使用系统提供的投播组件和接口,应用只需要设置对应的资源信息、监听投播中的相关状态,以及应用主动控制的行为(如:播放、暂停)。其他动作包括图标切换、设备的发现、连接、认证等,均由系统完成。

基本概念

  • 媒体会话([AVSession])

    音视频管控服务,用于对系统中所有音视频行为进行统一的管理。

    本地播放时,应用需要向媒体会话提供播放的媒体信息(如正在播放的歌曲、歌曲的播放状态等),并接收和响应播控中心发出的控制命令(如暂停、下一首等)。
    投播时,通过AVSession,应用可以进行投播能力的设置和查询,并创建投播控制器。

    应用可以在启动内容显示(比如:视频播放)时,获取支持投播的扩展屏设备并注册监听,当存在扩展屏时,可在扩展屏上全屏绘制要投播的内容。

  • 投播组件([AVCastPicker]

    系统级的投播组件,可嵌入应用界面的UI组件。当用户点击该组件后,系统将进行设备发现、连接、认证等流程,应用仅需要通过接口获取投播中相关的回调信息。

  • 投播控制器([AVCastController]

    在投播后,由应用发起的用于控制远端播放的接口,包括播放、暂停、调节音量、设置播放模式、设置播放速度等能力。

  • 后台长时任务

    应用实现后台播放,需申请后台长时任务,避免应用在投播后被系统后台清理或冻结。

运作机制

1

  • 发现和连接 设备

    用户在应用界面上点击AVCastPicker组件,触发系统发现可用于投播的设备。用户在设备列表中选择对应设备后,系统连接对应设备。应用无需关注设备的发现连接过程,仅需关注设备在远端是否可用。

    应用需要接入AVSession,才可以使用系统提供的统一投播能力,由系统进行设备发现和管理。

  • 进入远端投播

    应用通过AVSession监听设备的连接情况,监听到设备已连接后,可通过AVSession获取一个AVCastController对象用于发送控制命令(如播放、暂停、下一首等)。

    应用在进入远端投播时,应停止本地的播放器,避免本端和远端设备同时播放的情况。同时,建议应用重新绘制应用界面,比如界面变更为一个遥控器,来控制远端播放。

  • 在本端控制播放

    在本端(包括应用内和播控中心)控制播放时,控制命令将通过AVCastController发送,系统将完成数据传输和信息同步,然后更新远端系统预置播放器的状态。

  • 在远端控制播放

    用户同样可以在远端直接控制播放,会直接修改远端播放器的状态。

  • 远端播放器状态回调

    当远端播放器状态变更后,会触发回调,将状态信息返回到本端。应用可以通过AVCastController监听到远端播放器的状态变化。

最后呢

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

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙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.rhkb.cn/news/399663.html

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

相关文章

嵌入式学习---DAY24:进程--二

一、exec函数族----启动一个新程序 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支), 子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的 用户空间代码和数据完全被…

什么是 Java?

探索 Java,一种多功能且功能强大的编程语言。释放其构建强大应用程序的潜力。 前言 简单来说,Java 是一种用于开发软件应用程序的面向对象设计的编程语言。截至 2019 年,它是世界上最受欢迎的编程语言,尤其是因为它是开源的&#…

QT 布局管理器之QHBoxLayout

文章目录 概述.ui来看看Cmain.cpp运行 小结 概述 QHBoxLayout,在QT中是一个布局文件,而且相对来说还是比较简单的。接下来看下。 .ui 先看下在qt design中是如何用的,如下图: 就是这个布局文件,是一个xml的文件&am…

动起来!Axure动画的实用技巧

前言 在数字产品的世界中,用户体验的每一个细节都至关重要。 动画,作为一种增强交互性和视觉吸引力的手段,已经成为现代界面设计中不可或缺的元素。 Axure,作为一款强大的原型设计工具,提供了丰富的动画功能&#x…

Windows下编译安装PETSc

本文记录在Windows下使用MinGW-w64编译安装PETSc的流程。 0、环境 操作系统Windows 11MSYS2msys2-x86_64-20240507 1、开发环境 首先,下载并安装MSYS2,然后编辑PATH环境变量,添加mingw64相关路径:C:\msys64\mingw64\bin。 然后…

【项目分享】使用python的ttkbootstrap模块构建一个炫酷的计时器

目录 前言 项目背景 项目展示(图片) 项目实现 1. 安装与设置 2. 创建主窗口 3. 初始化计时器功能 4. 实现计时功能 5. 实现隐藏边框与置顶功能 6. 运行应用 完整代码 结论 🌟 嗨,我是命运之光! &#x1f…

从零开始实现循环神经网络

本节我们通过使用MXnet,来从零开始的实现一个含有隐藏状态的循环神经网络。 前序工作 数据集预处理进行采样 实现循环神经网络 完成前序工作后,即可开始实现循环神经网络。本文首先构建一个具有隐状态的循环神经网络。其结构如图所示: 接…

Linux的常用操作-02

一:Linux的系统目录结构 /bin bin是ary的缩写,这个目录存放着最经常用的命令 /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev:dev是Device(设备)的缩写,该目录下存放的是Lin…

Servlet——个人笔记

Servlet——个人笔记 文章目录 [toc]Servlet简介Servlet命名Servlet由来实现过程 Servlet 相对 CGI 的优势简要说说什么是CGI Servlet 在IDEA中开发流程Servlet注解方式配置WebServlet注解源码WebServlet注解使用 Servlet常见容器Servlet 生命周期简介测试 Servlet 方法init()…

MySQL(一)——初识数据库(概念、数据类型、基本表库操作)

文章目录 初识数据库数据库相关基本概念数据库的分类 MySQL数据库数据模型基本操作库操作查看数据库创建数据库删除数据库选中数据库 数据类型数值类型字符串类型日期类型 表操作查看所有表查看表结构创建表删除表 其他操作查看警告信息查看编码集 这是我们 MySQL 学习的第一程…

数据结构+图的基本应用

一、问题描述 求有向图的简单路径 编写一个程序,设计相关算法完成以下功能。 (1)输出如图所示的有向图 G 从顶点 5 到顶点 2 的所有简单路径。 (2)输出如图所示的有向图 G 从顶点 5 到顶点 2 的所有长度为 3 的简单路径。 (3)输出如图所示的有向图 G 从顶点 5 到顶点…

【nvidia-smi】Failed to initialize NVML: Driver/library version mismatch

服务器更新后,输入nvidia-smi出现如下报错: 解决方法参考: 已解决【nvidia-smi】Failed to initialize NVML: Driver/library version mismatch解决方法-腾讯云开发者社区-腾讯云 (tencent.com) 输入命令查看nvidia驱动的版本号&#xff1a…

python从入门到精通:判断语句

目录 前言 1、布尔类型和比较运算符 2、if语句的基本格式 3、if else语句 4、if elif else语句 5、判断语句的嵌套 6、实战演练 前言 逻辑判断是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能。 判断是程序最基础最核心的逻辑…

Hive3:识别内部表、外部表及相互转换

一、识别方法 查看内部表信息 desc formatted stu;查看外部表信息 desc formatted test_ext1;通过Table Type对应的值,我们可以区分外部表和内部表。 二、相互转换 内部表转外部表 alter table stu set tblproperties(EXTERNALTRUE);外部表转内部表 alter ta…

应急响应-主机安全之系统及进程排查相关命令(Linux操作系统-初级篇)

目录 概述lscpu-显示有关CPU架构的信息uname-查看系统信息lsmod-输出加载的所有模块lastb-输出最后登录失败的用户last-展示用户最近登录信息lastlog-展示所有用户最后的登录时间systemctl-系统服务,开机自启排查crontab-计划任务选项 history-查看历史命令选项常用…

正向代理 vs 反向代理:有什么区别?

在本文中,我们将讨论: 什么是常规代理(正向代理)?什么是反向代理?我应该为我的业务选择哪种代理?使用正向和反向代理的案例完成任务的代理替代方案 什么是常规代理(正向代理&#…

【Electron】npm安装Electron项目失败报错问题和解决办法

前言 闲来无事,便想着研究一下Electron,没想到安装直接就卡住了 问题 npm ERR! RequestError: Hostname/IP does not match certificates altnames: Host: npm.taobao.org. is not in the certs altnames: DNS:*.tbcdn.cn, DNS:*.taobao.com, DNS:*.al…

haproxy是什么?以及haproxy基础实验

目录 一、什么是负载均衡? 二、为什么要用haproxy? 三、haproxy的基本部署实验: 3.1 基本配置实验 环境准备: 详细步骤: 3.2 haproxy-多进程与多线程实验: 多进程: 多线程:…

【开源 Mac 工具推荐之 4】Awesome-macOS:全能的宝藏工具库

简介 Awesome-macOS 是一个开源项目,属于 GitHub 的热门项目“Awesome”的体系,旨在为 macOS 用户提供一个集合了各种优秀的 macOS 应用程序、插件、脚本和工具的精选列表。该项目由开源社区共同维护,通过不断收集和整理优秀的macOS资源&…

LeetCode - 209 - 长度最小的子数组

力扣209题 题目描述:长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组&…