有很多问题询问如何设置音量AVPlayer
,但是如何在 iOS 中获取播放器的当前音量?
例如,我试图将一首歌曲从其当前级别淡出。我可以将音量保存在其他地方并引用它,但宁愿直接从 AVPlayer 读取值。
有很多问题询问如何设置音量AVPlayer
,但是如何在 iOS 中获取播放器的当前音量?
例如,我试图将一首歌曲从其当前级别淡出。我可以将音量保存在其他地方并引用它,但宁愿直接从 AVPlayer 读取值。
AVPlayer
is 包含一个或多个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);
根据 Apple 的AVPlayer
OS X 文档,它列出了一个 volume 属性,但iOS 中同一类的文档没有列出一个。你的项目会允许你使用AVAudioPlayer
吗?那个确实有一个 iOS 的综合卷属性,它更容易设置/检索。
您可以使用 AVPlayer 类的 volume 属性。这是AVPlayer 类参考链接。引用它:
volume
表示播放器当前的音量。@property(nonatomic) float volume
Discussion
0.0 表示“静音所有音频”,1.0 表示“以当前项目的最大音量播放”。可用性
适用于 OS X v10.7 及更高版本。
在
AVPlayer.h 中声明
编辑:
您可以尝试获取系统卷。此链接提供了 2 种方式。