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

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

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

【问题讨论】:

    标签: objective-c ios 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 没有。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 2013-04-11
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多