使用UISlider更改应用程序中iPhone的音量的最佳方法是什么?
我已尝试使用该帐单(Using a UISlider to change volume)
但是屏幕上没有任何内容使用代码:
MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:
CGRectMake(0, 0, 215, 22)] autorelease];
volumeView.center = CGPointMake(150,375);
[volumeView sizeToFit];
[self.view addSubview:volumeView];
答案 0 :(得分:15)
我刚刚找到了一个非常简单的方法。而不是编码,只需将其放在您的XIB中。
瞧!
PS:在装有iPhone OS 3.0的设备上测试过它。正如之前所说的lostInTransit,它将无法在模拟器上运行。
答案 1 :(得分:2)
Using a UISlider to change volume
^我尝试了lostintransit,但这并没有改变铃声音量。它出现在iPhone屏幕上,但不会改变任何东西。甚至使用提供的演示项目。
答案 2 :(得分:1)
我正在使用相同的技术,但是我注意到以下行为:
在iPod touch G2上: MPVolumeView滑块可以在app启动时完全响应摇杆开关。
在iPhone Gen 1和3G上: MPVolumeView滑块在通过AudioQueue API发生媒体播放之前不会开始更改音量,并且会在调用AudioSessionSetActive(false)时停止更改音量。更奇怪的是:如果你在播放过程中使用AudioQueue API时触摸iPhone上的摇杆开关,那么MPVolumeView滑块将在应用程序的剩余使用期内工作。
This code保持所有内容同步,并有助于确保摇杆开关和滑块保持同步,但它并没有消除我在iPhone上使用MPVolumeView时出现的问题。
我在这里的所有经验都是在带有iPhone 3.0 SDK的iPhone OS 3.0下。
我希望这有助于缩小您的问题范围。
我的下一个策略是开始使用kAudioSessionProperty_AudioRoute处理并尝试kAudioSessionProperty_AudioCategory的替代值以查看会发生什么。
旁注: 感谢所有关于创建和管理MPVolumeView的IB技术的人。我正在使用代码来创建和放置它,我一直忘记了可以在IB中设置UIView类型的技术。
附注2: 在使用MPVolumeView时,我发现如果将音频类别设置为kAudioSessionCategory_MediaPlayback以外的任何内容,当iPhone设置为静音模式时,MPVolumeView将显示文本“iPhone ...”。
答案 3 :(得分:0)
使用MPVolumeView显示允许用户修改系统音量的滑块。
答案 4 :(得分:0)
如果您想要更改iPhone音量,MPVolumeView是唯一的选择。试试这个链接上的例子。
http://www.stormyprods.com/blogger/2008/09/proper-usage-of-mpvolumeview-class.html