在 Styled Media Receiver 上显示字幕 Google Cast with communication messages
Show subtitles on the Styled Media Receiver Google Cast with communication messages
我正在尝试在 Chromecast 上启动 mp4 流,该流还显示字幕(vtt 文件)
我看到它被添加到本地库中。但是我找不到用于将其发送到接收方应用程序的有效负载消息。我没有使用 android & iOS 的本地库,而是使用有效负载消息而不是本地库的 Flutter 版本。 -> https://github.com/jonathantribouharet/flutter_cast
这是我已经尝试过的。
{
'type': 'LOAD',
'autoPlay': true,
'currentTime': currentTime,
'media': {
'contentId': url,
'contentType': 'video/mp4',
'streamType': 'BUFFERED',
'metadata': {
'type': 0,
'metadataType': 0,
'title': title,
'images': [
{
'url': posterUrl,
}
],
},
},
'customData': {
'cc': {
'tracks': [
{'src': 'https://gist.githubusercontent.com/samdutton/ca37f3adaf4e23679957b8083e061177/raw/e19399fbccbc069a2af4266e5120ae6bad62699a/sample.vtt'},
],
'active': 0
},
},
}
这是我的完整应用程序:
https://github.com/vanlooverenkoen/flutter_cast_ui/tree/feature/cast-ui
但是自定义数据没有做任何事情。
我发现的所有 Whosebug 问题都来自 2014 年。从那时起,应该可以通过 3 种文件格式使用 ClosedCaptions 或字幕:WebVTT、TTML 和 CEA-608。
- https://developers.google.com/cast/docs/web_receiver/tracks#closed_captions_subtitles
- https://developers.google.com/cast/docs/media#subtitles_and_closed_captions
此文档用于 play/pause/stop 实施:
- https://developers.google.com/cast/docs/reference/messages
- https://docs.rs/crate/gcast/0.1.5/source/PROTOCOL.md
我已经看到的 Stackoveflow 问题:
- Styled media receiver source (Chromecast)
- Google Cast - Subtitles with the Styled Media Receiver?
- Cast Receiver App does not show subtitles
我没有这方面的经验,但你可以看看 this repo。它使用 cpp 来做类似的事情,并提供了一种构建有效载荷的方法,包括 text/vtt 和 link 作为字幕。
所以你可以用更多数据扩展轨道对象
msg["media"]["tracks"][0]["language"] = "en-US";
msg["media"]["tracks"][0]["name"] = "English";
msg["media"]["tracks"][0]["type"] = "TEXT";
msg["media"]["tracks"][0]["subtype"] = "SUBTITLES";
msg["media"]["tracks"][0]["trackId"] = 1;
msg["media"]["tracks"][0]["trackContentId"] = yourSubtitleUrl;
msg["media"]["tracks"][0]["trackContentType"] = "text/vtt";
我正在尝试在 Chromecast 上启动 mp4 流,该流还显示字幕(vtt 文件)
我看到它被添加到本地库中。但是我找不到用于将其发送到接收方应用程序的有效负载消息。我没有使用 android & iOS 的本地库,而是使用有效负载消息而不是本地库的 Flutter 版本。 -> https://github.com/jonathantribouharet/flutter_cast
这是我已经尝试过的。
{
'type': 'LOAD',
'autoPlay': true,
'currentTime': currentTime,
'media': {
'contentId': url,
'contentType': 'video/mp4',
'streamType': 'BUFFERED',
'metadata': {
'type': 0,
'metadataType': 0,
'title': title,
'images': [
{
'url': posterUrl,
}
],
},
},
'customData': {
'cc': {
'tracks': [
{'src': 'https://gist.githubusercontent.com/samdutton/ca37f3adaf4e23679957b8083e061177/raw/e19399fbccbc069a2af4266e5120ae6bad62699a/sample.vtt'},
],
'active': 0
},
},
}
这是我的完整应用程序: https://github.com/vanlooverenkoen/flutter_cast_ui/tree/feature/cast-ui
但是自定义数据没有做任何事情。
我发现的所有 Whosebug 问题都来自 2014 年。从那时起,应该可以通过 3 种文件格式使用 ClosedCaptions 或字幕:WebVTT、TTML 和 CEA-608。
- https://developers.google.com/cast/docs/web_receiver/tracks#closed_captions_subtitles
- https://developers.google.com/cast/docs/media#subtitles_and_closed_captions
此文档用于 play/pause/stop 实施:
- https://developers.google.com/cast/docs/reference/messages
- https://docs.rs/crate/gcast/0.1.5/source/PROTOCOL.md
我已经看到的 Stackoveflow 问题:
- Styled media receiver source (Chromecast)
- Google Cast - Subtitles with the Styled Media Receiver?
- Cast Receiver App does not show subtitles
我没有这方面的经验,但你可以看看 this repo。它使用 cpp 来做类似的事情,并提供了一种构建有效载荷的方法,包括 text/vtt 和 link 作为字幕。 所以你可以用更多数据扩展轨道对象
msg["media"]["tracks"][0]["language"] = "en-US";
msg["media"]["tracks"][0]["name"] = "English";
msg["media"]["tracks"][0]["type"] = "TEXT";
msg["media"]["tracks"][0]["subtype"] = "SUBTITLES";
msg["media"]["tracks"][0]["trackId"] = 1;
msg["media"]["tracks"][0]["trackContentId"] = yourSubtitleUrl;
msg["media"]["tracks"][0]["trackContentType"] = "text/vtt";