iOS:访问设备硬件音量控制

Posted

技术标签:

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

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

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

iOS: Change Device Volume

Accessing hardware infos on iOS devices

iOS System Volume Control

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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于iOS:访问设备硬件音量控制的主要内容,如果未能解决你的问题,请参考以下文章

更改设备音量

为啥音量不跟随我的 iOS 应用程序中的硬件控制?

根据设备音量ios控制滑块[关闭]

通过锁定屏幕上的硬件按钮提供对音量控制的访问

硬件音量按钮和 Swift

是否有任何颤振插件可以控制在 Android 和 iOS 上工作的设备的媒体音量?