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:访问设备硬件音量控制的主要内容,如果未能解决你的问题,请参考以下文章