【发布时间】:2021-02-25 23:38:16
【问题描述】:
基于网络的 Chromecast 发件人的文档说 castSession.loadMedia() 返回一个承诺。因此,我应该能够像这样在异步函数中捕获错误:
const castSession = cast.framework.CastContext.getInstance().getCurrentSession();
const mediaInfo = new chrome.cast.media.MediaInfo(
'https://example.com/stream.m3u8',
'application/vnd.apple.mpegurl'
);
const loadRequest = new chrome.cast.media.LoadRequest(mediaInfo);
try {
await castSession.getSessionObj().loadMedia(loadRequest);
} catch(e) {
console.error(e);
}
很遗憾,这不起作用。无论我遇到什么加载错误,似乎都发生在下载 HLS 清单和播放之前之间的某个时间。 loadMedia() 承诺成功解决,因此没有要捕获的错误。发件人的开发者控制台报错:
cast_sender.js:85 Uncaught TypeError: d is not a function
at cast_sender.js:85
at V.onMessage (cast_sender.js:91)
at S.h (cast_sender.js:71)
(anonymous) @ cast_sender.js:85
V.onMessage @ cast_sender.js:91
S.h @ cast_sender.js:71
显然,某种错误正在返回给客户端,似乎应该有一些未设置的事件处理程序,但我没有看到任何有关如何捕获错误的文档。
如何在 Chromecast 发送器上捕获媒体加载错误、一般媒体错误和任何其他错误?
【问题讨论】:
标签: javascript chromecast google-cast google-cast-sdk