Ios 当AVPLayer';他正在播放广播流

Ios 当AVPLayer';他正在播放广播流,ios,streaming,avfoundation,volume,avplayer,Ios,Streaming,Avfoundation,Volume,Avplayer,我正在使用AVPlayer播放广播流。 对于初始化播放器,我将使用下一个代码: self.asset = [AVAsset assetWithURL:self.url]; self.item = [AVPlayerItem playerItemWithAsset:self.asset]; self.player = [AVPlayer playerWithPlayerItem:self.item]; 我读过这个问题 我试图用滑块值设置音量 - (void)setVolume:(float )v

我正在使用AVPlayer播放广播流。 对于初始化播放器,我将使用下一个代码:

self.asset = [AVAsset assetWithURL:self.url];
self.item = [AVPlayerItem playerItemWithAsset:self.asset];
self.player = [AVPlayer playerWithPlayerItem:self.item];
我读过这个问题

我试图用滑块值设置音量

- (void)setVolume:(float )volume
{
    _volume = volume;
    NSArray *audioTracks = self.asset.tracks;
    NSMutableArray *allAudioParams = [NSMutableArray array];

    for (AVAssetTrack *track in audioTracks) {
        AVMutableAudioMixInputParameters *audioInputParams =
        [AVMutableAudioMixInputParameters audioMixInputParameters];
        [audioInputParams setVolume:volume atTime:kCMTimeZero];
        [allAudioParams addObject:audioInputParams];
        [audioInputParams setTrackID:[track trackID]];
    }

    AVMutableAudioMix *audioMix = [AVMutableAudioMix audioMix];
    [audioMix setInputParameters:allAudioParams];
    NSLog(@"%@", self.player.currentItem);
    NSLog(@"%f", volume);
    [self.player.currentItem setAudioMix:audioMix];
}
我也在尝试设置

[audioInputParams setVolume:volume atTime:self.player.currentTime];
但该数组中没有任何轨迹(self.asset.tracks), 而且它对体积没有任何影响。(我也无法获取任何元数据), 我无法使用AVAudioPlayer按url播放音频流

AVAudioPlayer类的一个实例,称为音频播放器, 提供从文件或内存播放音频数据

Apple建议您使用该类进行音频播放,除非您 正在播放从网络流捕获的音频,或者要求非常低 I/O延迟

我正在考虑使用那个代码 用于播放广播流,但我不知道如何使用Audiotoolbox设置音量


请帮帮我!谢谢

我已经尝试了很多解决方案,但最好的方法是实现一个MPVolumeVIew实例:

 self.myViewVolume = [[MPVolumeView alloc] initWithFrame:CGRectMake(20, 330, 280, 50)];
[self.myViewVolume sizeToFit];
[self.view addSubview:self.myViewVolume];
您可以将其添加到任何想要的UIView,只需将类更改为MPVolumeView 别忘了添加MediaPlayer框架

如果要从流中获取元数据,必须执行以下操作:

 [playerItem addObserver:self forKeyPath:@"timedMetadata" options:NSKeyValueObservingOptionNew context:NULL];

有了它,您只需将信息添加到任何UILabel即可

您能告诉我,将MPVolumeView添加到我的视图中我还应该知道什么吗。我有一些问题-当我用这段代码在我的视图中添加它时,它不会出现在我的视图中。我不明白为什么。感谢模拟器中没有出现滑块,MPVolumeView滑块链接到硬件音量按钮,只有在iPhone/iPad上测试时才会出现。但除此之外,它工作得很好,用户界面与另一个音量滑块相同。@Emk0DJ你用这个保存了我的培根!我什么都试过了,干杯!您不能从模拟器使用MPVolumeView。