【问题标题】:iOS Sdk Google Chromecast SubtitlesiOS SDK Google Chromecast 字幕
【发布时间】:2016-03-22 04:17:55
【问题描述】:

这就是我使用 Google Chromecast 设备显示字幕的方式。但是没有出现字幕。我必须在 Chromecast API 中进行更改吗?

var subtitleName:String = ""
var subtitleLink:String = ""
var subtitleType:String = ""
var subtitleCode:String = ""

if let _ = self.selectedSubtitle
{
  let subtitleIndex: Int = self.selectedSubtitle! - 1
  subtitleName = self.videoObject.subtitles![subtitleIndex].language!
  subtitleLink = self.videoObject.subtitles![subtitleIndex].link!
  subtitleLink = subtitleLink + ".vtt"

  subtitleType = self.videoObject.subtitles![subtitleIndex].type!
  subtitleCode = (self.subtitleLanguages.objectAtIndex(subtitleIndex) as! ICFLanguageObject).iso_639_3! as String

}

print("\n\nName: \(subtitleName),\n Link:\(subtitleLink) \n Type: \(subtitleType)\n Code: \(subtitleCode)\n\n")
//Values Printed on console

//Name: ara,

//Link:http://a**************c.vtt

//Type: subtitles

//Code: ara



    let subtitlesTrack = GCKMediaTrack(identifier: chromeCast_SubtitleID,
    contentIdentifier:subtitleLink,
    contentType: "text/vtt",
    type: GCKMediaTrackType.Text,
    textSubtype: GCKMediaTextTrackSubtype.Captions,
    name: subtitleName,
    languageCode: subtitleCode,
    customData: nil)

// Set Progress
   let time: Double = duration * (value - minValue) / (maxValue - minValue)
   let progress: NSTimeInterval = NSString(format: "%f", (time)).doubleValue


   let textTrackStyle = GCKMediaTextTrackStyle.createDefault()
   textTrackStyle.foregroundColor = GCKColor(CSSString: "#FF000080")
   textTrackStyle.fontFamily = "serif"
   styleChangeRequestID = (mediaControlChannel?.setTextTrackStyle(textTrackStyle))!
   print(styleChangeRequestID)

                   mediaControlChannel?.setActiveTrackIDs([chromeCast_SubtitleID])
                   mediaControlChannel?.setTextTrackStyle(textTrackStyle)
                   deviceManager?.setVolume(0.5)

                    let tracks = [subtitlesTrack]

                       let mediaInformation = GCKMediaInformation(
                       contentID:self.playbackObject.playbackURL(),
                       streamType: GCKMediaStreamType.None,
                       contentType: self.playbackObject.playbacktype(),
                       metadata: metadata,
                       streamDuration: progress,
                       mediaTracks: tracks,
                       textTrackStyle: textTrackStyle,
                       customData: nil
                    )


deviceManager?.setVolume(0.5)

mediaControlChannel!.loadMedia(mediaInformation, autoplay: true, playPosition: progress)

//[结束媒体]

【问题讨论】:

    标签: ios swift chromecast google-cast


    【解决方案1】:

    在 subtitlesTrack 分配中,尝试将 contentType 设置为“text/vtt”,而不是“subtitles”。从iOS Sender Guide 中的工作示例声明中,

    let captionsTrack = GCKMediaTrack(identifier: 1, contentIdentifier:
        "https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/" +
        "DesigningForGoogleCast-en.vtt", contentType: "text/vtt", type: GCKMediaTrackType.Text,
        textSubtype: GCKMediaTextTrackSubtype.Captions, name: "English Captions",
        languageCode: "en", customData: nil)
    

    上面的代码似乎也没有调用setActiveTrackIds,像这样:

    mediaControlChannel?.setActiveTrackIDs([1])
    

    此函数调用将 ID 为 1 的轨道设置为活动状态。

    【讨论】:

    • 用更多信息更新了我的答案 - 看看新解决方案是否有效。
    • 非常感谢。也试过了。它没有工作:(
    • 在尝试激活字幕时控制台是否报告任何错误消息?
    • 您能否确认我们是否可以将外部字幕投射到 *.m3u8 类型的视频流上 电影在 Chromecast 上以多种音频播放。 Volume , Seek 功能也有效。对于字幕,没有错误日志,字幕只是不出现。
    • 这应该不是问题。另一个想法 - 除了 m3u8 文件之外,vtt 文件还需要与 CORS 一起提供。服务器是这样配置的吗?另外,您是否有机会共享 m3u8 和 vtt 文件,以便我可以尝试重现错误?
    【解决方案2】:

    我为 MediaControlChannel 调用了错误的函数。对于字幕,必须调用不同的函数。此函数从未在 Google API 文档或示例代码中的任何地方使用过。如果 Google 可以使用 GCKMediaTrack 为文本、音频和视频更新示例项目,那将是很大的帮助。 另外,发布一些用于转换字幕流的示例。

    这是函数!

    self.mediaControlChannel!.loadMedia(mediaInformation, autoplay: true, playPosition: 0, activeTrackIDs: tracks)
    

    【讨论】:

      猜你喜欢
      • 2019-09-12
      • 2014-05-14
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 2020-01-15
      • 2016-04-02
      • 2014-05-31
      • 1970-01-01
      相关资源
      最近更新 更多