AVPlayer播放时显示HLS流的功率数据[关闭]

问题描述 投票:0回答:0

我有以下代码,它在我的 Amazon S3 存储桶中获取一个代表音频文件 (HLS m3u8) 的文件。然后我创建一个 AVURLAsset 并附加访问它所需的 cookie,然后创建 AVPlayerItem。然后我设置 AVPlayer,播放它,然后设置一个观察者,这样我就可以在音频文件播放完毕后处理一些逻辑。

我只是想在流式传输和播放音频文件时展示视觉效果。我查看了 audioTapProcessor,但它似乎不适用于流式文件。然后我查看了 AVAudioEngine 但这也不适用于流。我查看了 Swift 3rd 方库 SwiftAudioPlayer 但它与我需要的 AVUrlAsset 不兼容 cookie。我还在网上看到 AudioKit 不适用于 http 流式音频文件。

有人可以帮我尝试在 http 流时显示电源吗? 这个4年前的问题好像也难住了

guard let url = URL(string: url) else { return }

var cookies = [HTTPCookie]()

if let cookie = self.cookie as? [String: String] {
    for key in cookie.keys {
        let cookieField = ["Set-Cookie": "\(key)=\(cookie[key] ?? "")"]
            let cookie = HTTPCookie.cookies(withResponseHeaderFields: cookieField, for: url)
                cookies.append(contentsOf: cookie)
            }
        }

// Assign cookies to AVPlayer
let values = HTTPCookie.requestHeaderFields(with: cookies)
let cookieOptions = ["AVURLAssetHTTPHeaderFieldsKey": values]
            
let assets = AVURLAsset(url: url, options: cookieOptions)
            playerItem = AVPlayerItem(asset: assets)
            
            
self.myAudioPlayer = AVPlayer(playerItem: playerItem)
myAudioPlayer.play()
            

NotificationCenter.default.addObserver(self, selector: #selector(audioFinished), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: myAudioPlayer.currentItem)
swift swiftui avfoundation avplayer audiokit
© www.soinside.com 2019 - 2024. All rights reserved.