Приведите изображение в Chromecast с устройства iOS - Swift - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужно привести изображение в Chromecast из приложения iOS. Я успешно произнес видео, как описано в этом примере приложения: https://github.com/googlecast/CastVideos-ios. Но когда я пытаюсь внести изменения, чтобы отправить изображение, телевизор начинает загружаться и никогда не отображает изображение (но иногда он отображает текст из метаданных). Что я делаю неправильно?

Вот мой код:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let castButton = GCKUICastButton(frame: CGRect(x: 100, y: 100, width: 40, height: 40))
        castButton.tintColor = UIColor.purple
        view.addSubview(castButton)
        let sessionManager = GCKCastContext.sharedInstance().sessionManager
        sessionManager.add(self)
    }
    func buildMediaInformation() -> GCKMediaInformation {    
        let metadata = GCKMediaMetadata(metadataType: .photo)
        metadata.setString("Test Title", forKey: kGCKMetadataKeyTitle)
        let mediaInfo = GCKMediaInformation(contentID: "https://www.iconsdb.com/icons/preview/brown/circle-outline-xxl.png",
                                        streamType: .none,
                                        contentType: "image/png",
                                        metadata: metadata,
                                        adBreaks: nil,
                                        adBreakClips: nil,
                                        streamDuration: 0,
                                        mediaTracks: nil,
                                        textTrackStyle: nil,
                                        customData: nil)
        return mediaInfo
    }
    func playSelectedItemRemotely() {
        let castSession = GCKCastContext.sharedInstance().sessionManager.currentCastSession
        if castSession != nil {
        castSession?.remoteMediaClient?.loadMedia(self.buildMediaInformation())
        } else {
            print("No cast session")
        }
    }
}

extension ViewController : GCKSessionManagerListener {
    func sessionManager(_ sessionManager: GCKSessionManager, didStart session: GCKCastSession) {
        print("Session manager did start Cast Session")
        playSelectedItemRemotely()
    }
}
...