Caf Chromecast MPEG DASH ошибка после буферизации - PullRequest
0 голосов
/ 13 февраля 2019

Я не могу воспроизвести полный MPEG DASH с помощью Chromecast.Приведение начинается с отправителя IOS или Android, но после буферизации оно не может возобновиться и соединение завершается.

Если мы посмотрим на отладчик, ошибки не будет.Мы можем видеть только буферизацию = true.Через несколько секунд Chromecast не может воспроизводиться.

Debbuger:

ll {type: "MEDIA_STATUS", mediaStatus: {…}}
[Violation] 'setTimeout' handler took 376ms
[Violation] 'setTimeout' handler took 914ms
[Violation] 'setTimeout' handler took 60ms
index2.html:35 sl {type: "BUFFERING", isBuffering: true}
[Violation] 'setTimeout' handler took 1023ms
cast_receiver_framework.js:29 [Violation] 'timeupdate' handler took 306ms
index2.html:35 jl {type: "RATE_CHANGE", currentMediaTime: 255.119044}
[Violation] 'setTimeout' handler took 82ms
index2.html:35 ll {type: "MEDIA_STATUS", mediaStatus: {…}}

Это происходит с любым видео DASH или Smooth Streaming с DRM или без DRM.

КОД приемника:

<html>
<head>
</head>
<body>
  <cast-media-player id="player"></cast-media-player>
  <script type="text/javascript" src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
  </script>
  <script>
    const context = cast.framework.CastReceiverContext.getInstance();
    const playerManager = context.getPlayerManager();

    // intercept the LOAD request to be able to read in a contentId and get data
    playerManager.setMessageInterceptor(
        cast.framework.messages.MessageType.LOAD, loadRequestData => {
            if (loadRequestData.media && loadRequestData.media.contentId) {
                     //loadRequestData.media.contentUrl = media.url;
                    //loadRequestData.media.contentType = media.contentType;
                    //loadRequestData.media.metadata = media.metadata;
                                        loadRequestData.media.contentUrl = "https://dash.akamaized.net/dash264/TestCases/1c/qualcomm/2/MultiRate.mpd";
                    loadRequestData.media.contentType = "application/dash+xml";

                  return loadRequestData;
                }
            });
                        
    // listen to all Core Events
    playerManager.addEventListener(cast.framework.events.category.CORE,
        event => {
            console.log(event);
        });

    const playbackConfig = new cast.framework.PlaybackConfig();

    playbackConfig.autoResumeDuration = 5;
        playbackConfig.autoResumeNumberOfSegments = 5;
        playbackConfig.enableSmoothLiveRefresh = 1;

    context.start({
      playbackConfig: playbackConfig,
    });
  </script>
</body>
</html>

Есть ли у кого-нибудь подобное поведение?Любое воспроизведение Dash на Chromecast работает?Код получателя правильный?

...