Cocoa touch 使用UISlider更改音量

Cocoa touch 使用UISlider更改音量,cocoa-touch,Cocoa Touch,在应用程序中使用UISlider更改iPhone音量的最佳方式是什么 我试过用那个账单() 但屏幕上没有使用代码显示任何内容: MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame: CGRectMake(0, 0, 215, 22)] autorelease]; volumeView.center = CGPointMake(150,375); [volu

在应用程序中使用UISlider更改iPhone音量的最佳方式是什么


我试过用那个账单()

但屏幕上没有使用代码显示任何内容:

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:
                                CGRectMake(0, 0, 215, 22)] autorelease];
volumeView.center = CGPointMake(150,375);
[volumeView sizeToFit];
[self.view addSubview:volumeView];

使用MPVolumeView显示一个滑块,允许用户修改系统音量。

如果您希望能够更改iPhone音量,MPVolumeView是唯一的选项。请尝试此链接上的示例


^我试过lostintransit,但是这并没有改变振铃器的音量。它会出现在iphone屏幕上,但不会改变任何东西。甚至使用提供的演示项目。

我刚刚找到了一个非常简单的方法。不要编码,只需将其放在XIB中即可

  • 打开要放置滑块的XIB
  • 将UIView添加到视图中
  • 将类标识从UIView更改为MPVolumeView
  • 将背景颜色更改为“清除”

  • PS:在装有iPhone OS 3.0的设备上进行了测试。正如lostInTransit之前所述,它在模拟器上不起作用。

    我正在使用相同的技术,但我注意到以下行为:

    在iPod touch G2上: MPVolumeView滑块工作,并从应用程序启动时起完全响应翘板开关

    在iPhone Gen 1和3G上: 在通过AudioQueue API进行媒体播放之前,MPVolumeView滑块不会开始更改音量,并且在调用AudioSessionSetActive(false)时将停止更改音量。更奇怪的是:如果您在播放过程中使用AudioQueue API时按下iPhone上的翘板开关,那么MPVolumeView滑块将在应用程序的剩余生命周期内工作

    保持一切同步,并有助于确保翘板开关和滑块保持同步,但这并不能消除我在iPhone上使用MPVolumeView时遇到的问题

    我在这里的所有经历都是在iPhoneOS3.0和iPhone3.0SDK下进行的

    我希望这有助于缩小你的问题

    我的下一个策略是开始使用kAudioSessionProperty_AudioRoute进行操作,并尝试使用kAudioSessionProperty_AudioCategory的其他值来查看发生了什么

    旁注: 感谢所有使用IB技术创建和管理MPVolumeView的人。我使用代码来创建和放置它,但我一直忘记了可以在IB中设置UIView类型的技术

    旁注2:
    在使用MPVolumeView时,我发现如果将音频类别设置为kAudioSessionCategory_MediaPlayback以外的任何内容,则当iPhone设置为静音模式时,MPVolumeView将显示文本“iPhone…”。

    是否在模拟器上尝试?它在sim卡上不起作用。在实际手机上试用你的代码。我正在我的一个应用程序中使用它,效果非常好。你需要导入mediaplayer框架:#导入你忘了提到必须将mediaplayer框架添加到项目中才能使其正常工作。