我正在使用 AVPlayer 播放广播流。为了初始化播放器,我正在使用下一个代码:
self.asset = [AVAsset assetWithURL:self.url];
self.item = [AVPlayerItem playerItemWithAsset:self.asset];
self.player = [AVPlayer playerWithPlayerItem:self.item];
我读过这个问题Adjusting the volume of a playing AVPlayer
我正在尝试使用滑块值设置音量
- (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 延迟。
我正在考虑使用该代码https://github.com/DigitalDJ/AudioStreamer/downloads 播放广播流,但我不知道如何使用 Audiotoolbox 设置音量。
请帮我!谢谢!