W3C媒体与Vega媒体控制集成
Vega媒体控制 (VMC) 所提供的功能可让Vega上的媒体应用开发者为媒体控制简化各种输入模式的集成。虽然媒体应用通常具有应用内用户界面控件,例如播放、暂停和停止,但客户通常需要额外的交互方式,例如使用遥控器或通过Alexa等服务使用语音命令。Vega媒体控制功能可处理这些不同的输入方法的集成,让开发者能够专注于流畅媒体播放的核心业务逻辑。
使用W3C媒体API播放其内容的应用现在可以免费获得VMC集成,用于基本的播放控制,例如暂停、播放和搜索。W3C媒体API在内部创建VMC服务器,发布服务器状态,并处理播放、暂停和搜索等基本命令。
player.setMediaControlFocus(componentInstance) 或实现覆盖功能。要选择加入此集成,请执行以下操作:
- 启用VMC。按照开始使用Vega媒体控制概述中所述,将必要的清单条目添加到manifest.toml文件中。
- 更新您的package.json文件,以在@amazon-devices/kepler-media-controls上获取依赖项。
- 
    获取交互式组件的组件实例: import { useComponentInstance , IComponentInstance } from '@amazon-devices/react-native-kepler'; const componentInstance: IComponentInstance = useComponentInstance();
- 
    在初始化视频播放器之前,将媒体控制焦点设置在播放器实例上。 player.setMediaControlFocus(componentInstance);
现在,该播放器实例将通过VMC启用,并将支持暂停/播放和搜索遥控以及Alexa语音控制等基本功能。
覆盖某些控制命令
在某些情况下,应用可能希望覆盖默认由W3C媒体处理的某些控制命令的处理。例如,在直播内容播放期间禁用搜索。W3C媒体也提供了实现这点的方法。
- 
    扩展W3C媒体提供的VegaMediaControlHandler并覆盖应用想要覆盖的函数。 import {VegaMediaControlHandler} from "@amazon-devices/react-native-w3cmedia"; import {IMediaSessionId } from '@amazon-devices/kepler-media-controls'; class AppOverrideMediaControlHandler extends VegaMediaControlHandler { async handlePlay(mediaSessionId?: IMediaSessionId) { if(shouldOverride) { // 根据应用的要求进行自定义处理 } else { // 调用默认处理程序 super.handlePlay(mediaSessionId); } } };
- 
    将应用的媒体控制处理程序作为第二个参数传递给 setMediaControlFocus方法。player.setMediaControlFocus(componentInstance, new AppOverrideMediaControlHandler());
相关主题
Last updated: 2025年9月30日

