在 iOS 中获取 AVPlayer 的音量

Posted

技术标签:

【中文标题】在 iOS 中获取 AVPlayer 的音量【英文标题】:Get Volume of AVPlayer in iOS 【发布时间】:2012-08-23 01:50:52 【问题描述】:

有很多问题询问如何设置AVPlayer 的音量,但如何在 ios 中获取播放器的当前音量? p>

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

【问题讨论】:

【参考方案1】:

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);

【讨论】:

所以- (void) getVolumeRampForTime:startVolume:endVolume:timeRange: 上的AVAudioMixInputParameters 来自player.audioMix.inputParameters[]。目前还不知道怎么拉音量,等我弄明白了再贴出来。 该方法的startVolume:endVolume: 参数要求指向浮点数的指针,这就是提取音量值的机制。【参考方案2】:

根据 Apple 的 AVPlayer documentation for OS X,它列出了一个 volume 属性,但 same class in iOS 的文档没有列出一个。您的项目是否允许您改用AVAudioPlayer?那个确实有一个iOS的综合音量属性,更容易设置/检索。

【讨论】:

感谢 Shaun,但我正在使用 AVPlayer 流式传输远程 mp3 - AVAudioPlayer 似乎无法实现这一点【参考方案3】:

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

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

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

可用性 在 OS X v10.7 及更高版本中可用。

声明于 AVPlayer.h

编辑:

您可以尝试获取系统音量。这个link提供了2种方式。

【讨论】:

该属性仅在 OS X 上可用。iOS 没有。

以上是关于在 iOS 中获取 AVPlayer 的音量的主要内容,如果未能解决你的问题,请参考以下文章

AVPlayer 音量控制

iOS 4.0 音量衰减

AVPlayer 问题,同时直播 (iOS)

如何在 AVplayer 中为视频文件实现音量控制?

迅速。在模拟器上播放良好的 mp3 文件,但在设备上播放时没有音量。 AVPlayer

如何在具有 AVPlayer 类的应用程序中设置放大音量?