从 iOS 应用向 Chromecast 发送本地图片时遇到问题

Trouble sending a local image to Chromecast from iOS app

我正在使用 iOS 11.4 和 Swift 4 构建一个 iOS 应用程序,它应该在 iOS 屏幕上显示本地图像库。当我 select 来自画廊的单张图片时,我想通过 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 时电视屏幕都会刷新,但唯一显示的是投射图标。有人可以查看这段代码,看看是否有什么问题会导致图像无法发送到电视屏幕吗?

我能够解决这个问题。为了能够将图像发送到 chromecast 并随后发送到电视屏幕,我必须将网络服务器嵌入到我的 iOS 应用程序中。然后,我必须在网络服务器上托管我想在电视上显示的每张图像,并将网络服务器 url 发送到 chromecast,以便 chromecast 能够向我的嵌入式服务器发出 http 请求并将图像拉到 chromecast .