从 chromecast websender 设置播放率

问题描述 投票:0回答:2

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 调用中发送的命名空间是什么?

google-cast google-cast-sdk
2个回答
0
投票

对于任何偶然发现这个的人,这对我有用:

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 似乎并不重要,因为它是一个传输变量。


0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.