Ios 带可视化工具的AVPlayer

Ios 带可视化工具的AVPlayer,ios,swift,swift3,avplayer,Ios,Swift,Swift3,Avplayer,我需要为流式URL(m3u8格式)创建一个音频播放器。我用AVPlayer创建了音乐播放器。但我需要显示流歌曲的可视化工具。我尝试过不同的解决方案,但没有找到任何有效的例子 我已经使用AVAudioPlayer(averagePower)创建了visualizer,但它不支持流式URL 有关于显示AVPlayer的可视化工具的帮助吗?提前谢谢 我也尝试过使用大多数人建议的MYAudioTapProcessor,但对于流式URL,曲目总是返回null 在项目中添加了MYAudioTapProces

我需要为流式URL(m3u8格式)创建一个音频播放器。我用AVPlayer创建了音乐播放器。但我需要显示流歌曲的可视化工具。我尝试过不同的解决方案,但没有找到任何有效的例子

我已经使用AVAudioPlayer(averagePower)创建了visualizer,但它不支持流式URL

有关于显示AVPlayer的可视化工具的帮助吗?提前谢谢

我也尝试过使用大多数人建议的MYAudioTapProcessor,但对于流式URL,曲目总是返回null

在项目中添加了MYAudioTapProcessor.h和MYAudioTapProcessor.m

//Initialization of player 
let playerItem = AVPlayerItem( url:NSURL( string:"https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8" ) as! URL )
let audioPlayer: AVPlayer = AVPlayer(playerItem:playerItem)


//Added periodic time observer
    audioPlayer!.addPeriodicTimeObserver(forInterval: CMTimeMakeWithSeconds(1, 1), queue: DispatchQueue.main) { (CMTime) -> Void in
                if audioPlayer!.currentItem?.status == .readyToPlay
                {

                    if let playerItem: AVPlayerItem = audioPlayer!.currentItem {
                        print(playerItem.asset.tracks.count)
                        if (playerItem.asset.tracks) != nil {
                        self.tapProcessor = MYAudioTapProcessor(avPlayerItem: playerItem)
                        playerItem.audioMix = self.tapProcessor.audioMix
                        self.tapProcessor.delegate = self
                        }
                    }

                }
            }


//Delegate callback method for MYAudioTapProcessor
func audioTabProcessor(_ audioTabProcessor: MYAudioTapProcessor!, hasNewLeftChannelValue leftChannelValue: Float, rightChannelValue: Float) {
        print("volume: \(leftChannelValue) : \(rightChannelValue)")
        volumeSlider.value = leftChannelValue
    }
还尝试添加“轨迹”观察者

playerItem.addObserver(self, forKeyPath: "tracks", options: NSKeyValueObservingOptions.new, context:  nil);

现在,如果播放mp3文件,回调方法调用,但对于m3u8,回调方法不调用。m3u8 URL失败的主要原因是它始终显示曲目数组计数为零,而对于mp3文件,曲目数组只有一项。

您无法通过AVPLayer获取HLS曲目。播放媒体时,您应该使用渐进式下载或本地文件来获取音频曲目。

这听起来是一项相当艰巨的任务。你能分享一下到目前为止你已经完成的工作吗?也许有人可以提供一些指导?@Davewston我已经添加了一些代码。请让我知道是否有任何解决问题的方法。谢谢。@Girish,有办法吗?@Girish,你找到解决办法了吗?@adev还没有找到任何解决办法。目前,我们跳过了可视化功能。