【问题标题】:iOS: Accessing device hardware audio volume controliOS:访问设备硬件音量控制
【发布时间】:2012-02-23 13:47:08
【问题描述】:

我已经在我的应用程序中实现了这个流媒体(https://github.com/DigitalDJ/AudioStreamer),它运行得非常好,但是它没有实现音量控制,有人有提示如何开始使用音量滑动或其他东西吗?

我正在寻找一些类似的问题:

没有找到任何有用的方法来回答我的问题,如何改变音量(上/下),当然也可以将它连接到某种控件,即滑块,感谢任何帮助

【问题讨论】:

    标签: objective-c ios cocoa-touch ios5


    【解决方案1】:

    确保将 MediaPlayer 框架添加到您的项目中

    您必须在 .h 文件中定义一个视图才能将滑块放入本例中的“viewVolume”

    信息:这只能在真实设备上的模拟器中运行。

    #import <MediaPlayer/MediaPlayer.h>
    
    - (void)showTheVolumeSlider {
    
        MPVolumeView *volumeViewSlider = [[MPVolumeView alloc] initWithFrame:viewVolume.bounds] ;
        [viewVolume addSubview:volumeViewSlider];
        [volumeViewSlider sizeToFit];
    
    }
    

    此代码正在使用 ARC。

    此代码也可以使用:

    musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
        musicPlayer.volume = slider.value;
    

    但是如果你想使用它,你必须创建一个系统来更新滑块,因为设备的音量是从其他地方调整的

    这将适用于更新音量,但我不知道这是否是最好的方法

      timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(updateSound) userInfo:nil repeats:YES];
    

    这个来更新 UISlider:

    - (void)updateSound {
    
        musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
        slider.value = musicPlayer.volume;
        // value from 0.0 to 1.0
    
    }
    

    【讨论】:

    • 我知道这是一个老问题,但如果你在附近,有没有办法将现有的 UISlider 设置为 MPVolumeView?
    • Ruben Martinez Jr. - 使用第二个代码块,但它以音量覆盖的形式为您提供反馈,与使用设备侧面的音量控件 iirc 相同。
    【解决方案2】:

    您可以使用MPVolumeView。这会给你一个控制音量的UISlider。

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 2013-12-13
      • 2016-03-26
      • 2023-03-17
      相关资源
      最近更新 更多