Я создаю приложение для iOS с iOS 11.4 и Swift 4, которое должно отображать галерею локальных изображений на экране iOS.Когда я выбираю одно изображение из галереи, я хочу отправить это изображение на экран телевизора через Chromecast.Я могу подключиться к своему устройству Chromecast, но когда я пытаюсь отправить изображение, на экране телевизора отображается только значок приведения.Вот код для передачи изображения в Chromecast:
PHImageManager.default().requestImage(for: asset, targetSize: targetSize, contentMode: .aspectFit, options: options, resultHandler: { image, _ in
// If successful, show the image view and display the image.
guard let image = image else { return }
// Now that we have the image, show it.
imageview.isHidden = false
// Here the image is correctly displayed on the screen
imageview.image = image
// Checking if cast session started
if self.sessionManager.hasConnectedSession() == true {
// Creating image name to save it as URL
var imageName = "Image_"
// Give image unique name
imageName = imageName + "\(self.imageNameInt)"
self.imageNameInt += 1
// Saving image to local URL so it will be compatible for use
// in GCKMediaInformation
let imageData = UIImageJPEGRepresentation(imageview.image!, 0.8)
let docDir = try! FileManager.default.url(for: .documentDirectory,
in: .userDomainMask, appropriateFor: nil, create: true)
let imageURL = docDir.appendingPathComponent(imageName)
try! imageData?.write(to: imageURL)
let metadata = GCKMediaMetadata(metadataType: .photo)
let imageAsset = imageURL.absoluteString
self.mediaInfo = GCKMediaInformation(
contentID: imageAsset,
streamType: .buffered,
contentType: "image/jpg",
metadata: metadata,
streamDuration: 0,
mediaTracks: nil,
textTrackStyle: nil,
customData: nil)
self.sessionManager.currentCastSession?.remoteMediaClient?.loadMedia(self.mediaInfo!)
}
})
Каждый раз, когда loadMedia вызывается, экран телевизора обновляется, но отображается только значок приведения.Может кто-нибудь заглянуть в этот код и посмотреть, есть ли что-то неправильно, что может привести к тому, что изображение не будет отправлено на экран телевизора?