一、版本更新

OpenHarmony在2024年9月29日发布了OpenHarmony-v5.0.0-Release版本,相比OpenHarmony-5.0-Beta1版本系统能力持续完善。媒体部分在音视频播放、录制方面能力进一步增强,新增支持多个音视频、图片的编码格式,支持更细节的播控操作。
OpenHarmony 5.0.0 Release Notes
https://gitee.com/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v5.0.0-release.md

二、媒体更新

播放

  • 播放器起播、Seek性能优化,降低时延

    这部分对应的系统API是AVPlayer,系统服务层媒体引擎是histreamer引擎,播放功能和性能一直在完善;

  • 新增多种播放协议或格式:支持DASH流媒体协议播放;支持AMR、APE、WAV PCM-MULAW格式音频播放

    目前已支持的网络协议:HTTP、HTTPS、HLS、HTTP-FLV、Dash;
    新增的音频格式AMRNB、AMRWB、APE、WAV使用ffmpeg 解封装,AMR、APE使用ffmpeg 解码,PCM-MULAW使用自研解码器;

  • 新增多种播放控制的能力:支持多音轨视频播放、播放视频过程更换输出Surface、静音播放、精准Seek、设置播放区间、字幕

    1、支持多音轨视频播放:通过 getTrackDescription 可以获取音视频轨道信息,查看是否有多个音频轨道;通过getSelectedTracks 可以获取已选择的音视频轨道的索引;通过selectTrack 可以在播放多音轨视频时选择指定音轨播放;通过deselectTrack(index: number) 在播放多音轨视频时取消指定音轨播放;

    2、支持播放视频过程更换输出Surface:更新surfaceId属性,一开始只支持在initialized状态下设置。目前也支持在prepared/playing/paused/completed/stopped状态下重新设置,重新设置时确保已经在initialized状态下进行设置,否则重新设置失败,重新设置后视频播放在新的窗口渲染;

    3、支持静音播放:通过 setMediaMuted 设置音频静音/取消音频静音;

    4、支持精准seek:通过 seek(timeMs: number, mode?:SeekMode): void 第二个参数设置SEEK_CLOSEST,可以跳转到距离指定时间点最近的帧播放;

    5、支持设置播放区间:setPlaybackRange(ArkTs文件未声明但NAPI已实现),有3个参数(startTimeMs:number,endTimeMs:number,seekMode:number),支持在initialized/prepared/paused/stopped/completed 状态下设置;

    6、支持字幕:通过 addSubtitleFromFd和addSubtitleFromUrl为视频添加外挂字幕,当前仅支持与视频资源同时设置(在avplayer设置fdSrc视频资源后设置外挂字幕);当前只支持SRT外挂字幕;系统服务层无法渲染字幕,需要应用通过on('subtitleUpdate') 订阅获取外挂字幕的事件,当有外挂字幕时,会通过订阅的回调方法通知应用,应用去渲染字幕;

  • 支持配置流媒体缓冲大小;支持音频Offload模式

    通过setPlaybackStrategy可以设置缓冲持续时间;

  • 流媒体播放能力增强:优化流媒体缓存策略,减少卡顿

    通过setPlaybackStrategy可以设置流媒体播放策略,宽度、高度、缓冲持续时间、是否HDR等。

录制

  • 音频录制能力增强:支持mp3 、WAV PCM -MULAW格式音频录制

    这部分对应的系统API是AVRecorder,系统服务层媒体引擎是histreamer引擎;

    支持mp3、mulaw音频编码录制:以前只支持AAC,目前应用初始化AVRecorderProfile 时配置audioCodec属性为AUDIO_MP3或AUDIO_G711MU即可支持新的音频编码格式。

录屏

  • 支持对应用自身隐私窗口豁免录屏保护,提供隐私确认窗口和录屏状态提示

  • 支持录屏时排除指定窗口的画面

  • 支持配置屏幕旋转并可动态调整旋转参数

  • 支持麦克风和系统音同时录制

    这部分对应的系统ArkTS API是AVScreenCaptureRecorder,5.0版本新增的,以前版本只支持Native API,通过media.createAVScreenCaptureRecorder 创建一个屏幕录制实例,使用方法可以参考AVScreenCaptureRecorder录屏

    音视频编解码

  • 新增AVTranscoder转码接口,支持降低码率,输出视频编码AVC、音频编码AAC、封装格式MP4的视频文件,减少传输/存储数据量

    这部分对应的系统ArkTS API是AVTranscoder,5.0版本新增的,通过media.createAVTranscoder 创建一个视频转码实例,使用方法可参考AVTranscoder实现视频转码

音频

音频焦点增强:支持焦点会话,允许应用设置与其他应用的并发播放策略,允许应用静音播放时不打断后台播放中的音频。

新增支持DP、USB耳机等更多的音频发声设备,支持切换默认发声设备功能(听筒和扬声器)。

新增视频通话的音频流类型,优化该场景下的音频流播放体验。

新增统一音量组件,方便使用、降低开发复杂度。

支持应用内投播组件样式的自定义。

支持铃音列表查询和自定义铃音设置。

DRM

AVPlayer/AVCodec支持DASH协议节目的DRM信息解析、支持TS封装的H265视频格式的解密、支持音频解密。

AVCodec DRM适配增加解密参数设置。

相机

新增模式化能力,包括:延时摄影、全景、流光快门、大光圈录像、荧光摄影。

新增相机PerConfig一键配置机制,确保相机效果一致,降低开发复杂度。

优化分段式流程,提升拍照/录像的性能与质量。

对标ArkTS API能力,补齐相关C API。

增强相机使用体验,包括:镜像、变焦、防抖、连拍、相机状态通知等。

图片

EXIF读写能力增强,支持EXIF批量读写,GIF支持获取播放次数信息。

支持HDR能力:HDR双层编解码、HDR与SDR互转。

编解码格式增强,支持HEIF编解码,DNG解码。

编创框架基于NDK的C API补齐,包括:效果器基类、滤镜基类、自定义算法。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐