在iOS中获取AVPlayer的音量

时间:2012-08-23 01:50:52

标签: objective-c ios avplayer

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

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

3 个答案:

答案 0 :(得分:7)

AVPlayer包含一个或多个AVPlayerItem个对象,通过这些对象,您可以获取并设置AVPlayer播放的媒体的音频级别。前往AVPlayerItem docs并查看audioMix媒体资源,并查看我应该提供一些信息的slightly different question的答案。


在您的评论后跟进,这是(我认为)如何从- (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);

答案 1 :(得分:0)

根据Apple的AVPlayer documentation for OS X,它列出了一个音量属性,但same class in iOS的文档并未显示列出的属性。您的项目是否允许您使用AVAudioPlayer代替?那个 具有iOS的合成卷属性,可以更容易地设置/检索。

答案 2 :(得分:-1)

您可以使用AVPlayer类的volume属性。这是AVPlayer class reference链接。引用它:

<击>   

体积
  表示播放器的当前音量。

     

@property(非原子)浮动体积
  讨论
  0.0表示“静音所有音频”,1.0表示“以当前项目的全部音量播放。”

     

状况
  适用于OS X v10.7及更高版本。

     

在。中声明   AVPlayer.h   

编辑:

您可以尝试更改系统卷。这个link提供了两种方式。