本文提供媒体播放器组件的发版说明。
媒体播放器组件是声网针对音视频直播场景研发的媒体播放器插件,与声网 Native SDK(2.4.0 或更高版本)兼容。
该插件通过精简、灵活的 API,帮助开发者在实时音视频直播中,实现媒体资源播放功能,将主播播放的本地或在线媒体资源分享给频道内所有用户欣赏。详见功能描述。
为获取更多直播玩法和更好的实时互动体验,我们推荐你在如下场景中使用媒体播放器组件:
我们为媒体播放器组件提供了完整的文档,你可以参考如下链接进行使用:
MediaPlayer Kit 仅支持播放 60fps 以下(不含)帧率的视频。
该版本于 2021 年 7 月 27 日发布。
多码率切换
为保证复杂网络环境下的播放质量,该版本新增 switchSrc
方法,允许用户根据网络状态随时切换码率。支持通过该方法的 syncPts
参数同步点播流的当前播放位置,实现多码率的平滑切换。
调用 switchSrc
后,如果你收到 onPlayerEvent
回调报告事件 PLAYER_EVENT_SWITCH_COMPLETE
,则切换码率成功;如果你收到 onPlayerEvent
回调报告事件 PLAYER_EVENT_SWITCH_ERROR
,则切换码率失败。
预加载
为提升多个文件播放的连续性,该版本支持预加载功能。你可以调用 addPreloadSrc
方法将媒体资源提前加载到播放列表,再调用 playPreload
播放该文件。如需预加载多个媒体资源,你需要多次调用 addPreloadSrc
方法。
调用 addPreloadSrc
后,如果收到 onPreloadEvent
回调报告事件 PLAYER_PRELOAD_EVENT_COMPLETE
,则预加载成功;如果你收到 onPreloadEvent 回调报告事件 PLAYER_PRELOAD_EVENT_ERROR
,预加载失败。
为提升用户体验,该版本对 MediaPlayer Kit 的播放行为进行如下改进:
seek
且 pos
参数取值大于媒体文件总时长时,MediaPlayer Kit 会定位到最后一帧。为了降低 CPU 消耗,改善使用性能,该版本将解码默认方式由软件解码更改为硬件解码。
该版本修复了调用 open
,首帧等待时间过长的问题。
该版本于 2021 年 3 月 24 日发布。
自该版本起,MediaPlayer Kit 包中新增 libagora-player-ffmpeg.dll
文件。
1. 拓展播放功能
为满足多样化的播放需求,该版本新增如下 API:
changePlaybackSpeed
: 改变播放速度。比如倍速播放。selectAudioTrack
: 选择播放的音轨。setLoopCount
:设置循环播放次数。setExternalSubtitle
:设置外挂字幕。2. 在线缓冲提示
该版本新增在线缓冲提示。播放在线媒体资源时,MediaPlayer Kit 每隔一秒触发一次 onPlayBufferUpdated
回调,报告当前缓冲的数据能够支持多久的播放。
3. 获取 Kit 版本号
自该版本起,你可以通过 getPlayerSdkVersion
方法获取当前使用的 MediaPlayer Kit 的版本号。
4. 设置私有选项
为满足开发者的特殊需求,该版本新增 setPlayerOption
方法,以设置 MediaPlayer Kit 的私有选项。一般情况下,你可以直接使用默认的私有选项设置,无需了解该方法的具体用法。
1. 媒体附属信息
为解析更多类型的 SEI 数据,如声网 CDN 直播推流服务中发送的 SEI 数据,自该版本起,onMetadata
回调的触发时机发生改动:
1.2.4 版之前 | 1.2.4 版或之后 |
---|---|
当 MediaPlayer Kit 接收到的 SEI 的 type 为 5 时 | 当 MediaPlayer Kit 接收到的 SEI 的 type 为 5 或 100 时 |
2. 默认音量类型
为贴近用户使用习惯,自该版本起,MediaPlayer Kit 默认走媒体音量。相比通话音量,媒体音量具有更好的声音表现力且可以调整为 0,更适用于播放音视频。详见 [MediaPlayerContext](https://docs.agora.io/cn/Interactive Broadcast/API Reference/mediaplayer_cpp/structagora_1_1rtc_1_1_media_player_context.html) 参数。
3. 精确参数单位
该版本将如下参数的数值单位由秒更改为毫秒:
open 和 seek 方法中设置播放位置的参数。
通过 getPlayPosition
方法获取的播放进度参数。getDuration
方法获取的媒体文件总时长参数。onPositionChanged
事件中 position
参数。4. 播放格式
自该版本起,MediaPlayer Kit 新增支持播放更多格式的音视频:
seek
方法不生效。seek
方法后自动播放。seek
和 play
方法定位播放时,偶现画面卡顿。onPositionChanged
回调异常。该版本于 2020 年 9 月 25 日发布。
该版本修复了偶现的崩溃问题。
该版本于 2020 年 5 月 11 日发布。
该版本修复了以下问题:
该版本于 2020 年 3 月 30 日发布。
该版本主要功能如下:
主播端播放本地或在线音视频,同步分享给频道内的所有用户,实现更多直播玩法。
通过创建多个 IMediaPlayer 实例,实现同时播放多个媒体资源,满足主播多种直播需求。
打开、播放、暂停播放、恢复播放、定位播放该媒体资源,实现即时的播放控制。
分别调节本地和远端的播放音量,精准地控制不同阶段的播放音量,同时照顾播放端和订阅端的用户体验。
通过调用相关方法主动获取播放相关的各种信息,如当前播放进度、状态和媒体流的详细信息。
观测器中包含一系列事件,如播放进度、播放状态和定位状态。通过监听这些事件,你可以更好地掌握播放过程。当播放发生异常时,你可以通过这些事件来排查问题。
此外,你还可以监听媒体附属信息、每帧音频帧和每帧视频帧的接收事件,实现更为复杂的功能满足多种场景需求,如使用自定义格式数据、录制音频、录制视频和截图。
我们为媒体播放器组件提供了完整的文档,你可以参考如下链接进行使用:
该版本于 2019 年 9 月 4 日发布。
这是媒体播放器组件的第一个版本,你可以在项目中使用它实现如下功能:
主播端播放本地或在线音视频,同步分享给频道内的所有用户,实现更多直播玩法。
载入、播放、暂停播放、恢复播放、定位播放该媒体资源,实现即时的播放控制。
分别调节本地和远端的播放音量,精准地控制不同阶段的播放音量,同时照顾播放端和订阅端的用户体验。
你可以通过 MediaPlayerKitEventHandler
和 MediaInfoCallback
监听以下事件: