Chromecast 用のカスタム センダー アプリケーションとレシーバー アプリケーションを作成しました。送信者は回線経由で URL (ダッシュ mpd) を送信する必要があります。レシーバーはビデオ要素を作成し、ダッシュ mpd url を受信すると、ビデオ要素とやり取りする追加のファイルを作成する必要があります。
送信者で私はこれをやっています:
var request = new cast.LaunchRequest(APP_ID, receiver);
request.parameters = params;
cast_api.launch(request, onLaunch);
に続く:
var request = new cast.MediaLoadRequest("http://dash.edgesuite.net/envivio/dashpr/clear/Manifest.mpd");
request.parameters = params;
cast_api.loadMedia(cv_activity.activityId, request, onLoad);
次に、レシーバーに次のものがあります。
var receiver = new cast.receiver.Receiver(APP_ID, [cast.receiver.RemoteMedia.NAMESPACE]);
var rampHandler = new cast.receiver.RemoteMedia();
rampHandler.addChannelFactory(receiver.createChannelFactory(cast.receiver.RemoteMedia.NAMESPACE));
rampHandler.onOpen = onOpen;
rampHandler.onMessage = onMessage;
rampHandler.onLoad = onLoad;
rampHandler.onInfo = onInfo;
rampHandler.onPlay = onPlay;
rampHandler.onStop = onStop;
rampHandler.onEnded = onEnded;
rampHandler.onMetadataLoaded = onMetadataLoaded;
rampHandler.onLoadMetaDataError = onLoadMetaDataError;
rampHandler.onVolume = onVolume;
レシーバーを起動すると、onOpen と onMessage が一度起動されます。api.loadMedia を呼び出した後、何も起こらないようです。私が読んだことから、APIはRemoteMediaが応答する必要があるRAMP呼び出しにアクセスしているようです。api.loadMedia が呼び出された後に onLoad または onMessage がトリガーされることを期待していますが、何も起こりません。Chromecast デバッガーにはまったく痕跡がありません。