Android 和 iOS 有一个 setPlaybackRate 方法,但是 Web Sender API 没有这个。 如何使用 sendMessage 完成此操作?是这样的吗?但是消息的类型是什么?
playerTarget.setHalfSpeed = function (){
var media = castSession.getMediaSession();
castSession.sendMessage("urn:x-cast:com.google.cast.media",{
type: "THEWHATNOW",
playbackRate: 0.5,
mediaSessionId: media.mediaSessionId
});
}.bind(this);
我看到这里列出的消息: https://developers.google.com/cast/docs/reference/messages 但随后在示例中我看到了“SKIP_AD”的消息类型,该消息类型在任何地方都没有记录。我想要做的就是在播放时设置播放速率作为网络发送者。
我在这里看到消息类型: https://developers.google.com/cast/docs/reference/web_receiver/cast.framework.messages.SetPlaybackRateRequestData 但是在 sendMessage 调用中发送的命名空间是什么?
对于任何偶然发现这个的人,这对我有用:
playerTarget.setHalfSpeed = function (){
var media = castSession.getMediaSession();
castSession.sendMessage("urn:x-cast:com.google.cast.media",{
type: "SET_PLAYBACK_RATE",
playbackRate: 0.5,
mediaSessionId: media.mediaSessionId,
requestId: 2
}).then(
function (a) { console.log('Set playback rate success'); },
function (errorCode) {
console.log('Set playback rate error: ' + errorCode);
});
}.bind(this);
requestId 似乎并不重要,因为它是一个传输变量。
jay 的回答有效
我也可以从
const PLAYBACK_RATE = {
NORMAL: 1,
//1.25x
FAST: 1.25,
//1.5x
FASTER: 1.5,
//1.75x
FASTEST: 1.75,
//2x
DOUBLE: 2
};
let request = new chrome.cast.media.LoadRequest(mediaInfo);
request.currentTime = this.currentMediaTime;
//playbackRate
request.playbackRate = PLAYBACK_RATE.FASTER; //playbackRate playback speed