在iOS中获取AVPlayer的音量

ben*_*ree 2 objective-c ios avplayer

有很多问题询问如何设置音量AVPlayer,但是如何获得iOS中播放器的当前音量

例如,我试图将一首歌从其当前级别淡出.我可以在其他地方保存音量并引用它,但宁愿直接从AVPlayer读取值.

小智 7

AVPlayer包含一个或多个AVPlayerItem对象,通过这些对象,您可以获取和设置AVPlayer播放的媒体的音频级别.前往AVPlayerItem文档并查看audioMix属性,并查看我对一个稍微不同的问题的答案,该问题仍应提供一些信息.


在您的评论之后跟进,这是(我认为)如何从- (BOOL)getVolumeRampForTime:(CMTime)time startVolume:(float *)startVolume endVolume:(float *)endVolume timeRange:(CMTimeRange *)timeRange方法中获取音量值:

// Get your AVAudioMixInputParameters instance, here called audioMixInputParameters
// currentTime is the current playhead time of your media

float startVolume;
float endVolume;
CMTimeRange timeRange;

bool success = [audioMixInputParameters getVolumeRampForTime: currentTime
                                                 startVolume: &startVolume
                                                   endVolume: &endVolume
                                                   timeRange: &timeRange];

// startVolume and endVolume should now be set
NSLog(@"Start volume: %f | End volume: %f", startVolume, endVolume);
Run Code Online (Sandbox Code Playgroud)