iOS Sdk Google Chromecast Subtítulos

Así es como implementé para mostrar subtítulos usando un dispositivo Google Chromecast. Pero el subtítulo no aparece. ¿Tengo que hacer cambios en la API de Chromecast?

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) 

// [END MEDIA]

En la asignación de pistas de los subtítulos, intente configurar contentType como "text / vtt", no "subtitles". Desde la statement de ejemplo de trabajo en la Guía del remitente de iOS ,

 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) 

También parece que el código anterior no llama a setActiveTrackIds , así:

 mediaControlChannel?.setActiveTrackIDs([1]) 

Esta llamada de function establece la pista con ID 1 en activo.

Estaba llamando a la function incorrecta para MediaControlChannel. Para los subtítulos se debe llamar a una function diferente. Esta function nunca se utilizó en la documentation de las API de Google o en cualquier lugar en los códigos de muestra. Sería genial si Google puede actualizar un proyecto de ejemplo con GCKMediaTrack para text, audio y videos. Además, publique algunos ejemplos para transmitir los subtítulos en secuencia.

¡Aquí está la function!

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