gpt4 book ai didi

ios - 在 Swift 和 AVPlayer 中显示音频流的图稿?

转载 作者:行者123 更新时间:2023-11-30 13:27:20 25 4
gpt4 key购买 nike

我正在使用 AVPlayerViewController 在 tvOS 上播放音频流,现在我希望同时显示一些相关的艺术作品。

我不确定我是否应该以某种方式将它覆盖在上面,或者告诉 AVPlayerViewController 有关艺术品的信息。如果是后者,我似乎看不到告诉 AVPlayerViewController 的正确方法?有没有人指出适当的方法?

class StreamPlayerViewController: AVPlayerViewController 

var playerItem:AVPlayerItem?

override func viewDidLoad() {
let videoURL = NSURL(string: "http://example.org/aac.m3u")
playerItem = AVPlayerItem(URL: videoURL!)
self.player=AVPlayer(playerItem: playerItem!)

let playerLayer=AVPlayerLayer(player: player)
playerLayer.frame=CGRectMake(0, 0, 300, 50)
self.view.layer.addSublayer(playerLayer)

// TODO add art work or other metadata, not coming from stream
// TODO Tell player stream is of infinite time

self.player?.play()
}
}

最佳答案

在 @JAL ( original code ) 提供的评论之后,是以下代码:

override func viewWillAppear(animated: Bool) {
let image = UIImage(named: "stationAlbumArt")
let albumArtView = UIImageView(image: image)
// ensure view is screen size
albumArtView.frame = UIScreen.mainScreen().bounds
// set bounds, so that image stretch to fill
albumArtView.bounds = CGRectMake(0, 0, image!.size.width, image!.size.height)
self.contentOverlayView?.addSubview(albumArtView)
}

这里添加的两个关键内容是设置框架和边界。这里的框架使用屏幕尺寸,因为在调用 viewDidAppear() 之前 self.view.frame 不可用。需要设置边界以确保图像不会拉伸(stretch)以填充屏幕。

另一件事,虽然 AVPlayerLayer 需要实例化,但实际上似乎不需要添加为层,至少根据实验是这样。

此时唯一缺少的是屏蔽时间栏的能力,而不丢失音频控制菜单。

关于ios - 在 Swift 和 AVPlayer 中显示音频流的图稿?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37009947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com