2

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

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

4

3 回答 3

7

AVPlayeris 包含一个或多个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);
于 2012-08-23T14:53:39.570 回答
0

根据 Apple 的AVPlayerOS X 文档,它列出了一个 volume 属性,但iOS 中同一类的文档没有列出一个。你的项目会允许你使用AVAudioPlayer吗?那个确实有一个 iOS 的综合卷属性,它更容易设置/检索。

于 2012-08-23T03:23:08.750 回答
-1

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

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

@property(nonatomic) float volume
Discussion
0.0 表示“静音所有音频”,1.0 表示“以当前项目的最大音量播放”。

可用性
适用于 OS X v10.7 及更高版本。


AVPlayer.h 中声明

编辑:

您可以尝试获取系统卷。此链接提供了 2 种方式。

于 2012-08-23T03:22:33.947 回答