- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为 ios7 编写一个应用程序,它需要控制内置音乐播放器的音量或一般的主音量级别。我试过使用 MediaPlayer.framework 但不确定是否正确。我想知道解决这个问题的最佳方法是什么。谢谢!
最佳答案
根据 Apple 的说法,在 iOS7 中设置 MPMusicPlayerController
的 volume
已弃用:
// The current volume of playing music, in the range of 0.0 to 1.0.
// This property is deprecated -- use MPVolumeView for volume control instead.
@property(nonatomic) float volume NS_DEPRECATED_IOS(3_0, 7_0);
Apple 推荐使用 MPVolumeView
,所以我想到了这个:
添加volumeSlider
属性:
@property (nonatomic, strong) UISlider *volumeSlider;
初始化 MPVolumeView
并添加某处到您的 View (可以隐藏,没有框架,或者由于 showsRouteButton = NO
和 showsVolumeSlider = NO
而为空>):
MPVolumeView *volumeView = [MPVolumeView new];
volumeView.showsRouteButton = NO;
volumeView.showsVolumeSlider = NO;
[self.view addSubview:volumeView];
查找并保存对 UISlider
的引用:
__weak __typeof(self)weakSelf = self;
[[volumeView subviews] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([obj isKindOfClass:[UISlider class]]) {
__strong __typeof(weakSelf)strongSelf = weakSelf;
strongSelf.volumeSlider = obj;
*stop = YES;
}
}];
为 UIControlEventValueChanged
添加目标操作:
[self.volumeSlider addTarget:self action:@selector(handleVolumeChanged:) forControlEvents:UIControlEventValueChanged];
然后检测音量变化(即通过硬件音量控制):
- (void)handleVolumeChanged:(id)sender
{
NSLog(@"%s - %f", __PRETTY_FUNCTION__, self.volumeSlider.value);
}
还有其他方式,您可以通过以下方式设置音量:
self.volumeSlider.value = < some value between 0.0f and 1.0f >;
希望这会有所帮助(并且 Apple 不会从 MPVolumeView 中删除 MPVolumeSlider)。
关于ios7 调整 iPodMusicPlayer 音量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22112056/
我正在为 ios7 编写一个应用程序,它需要控制内置音乐播放器的音量或一般的主音量级别。我试过使用 MediaPlayer.framework 但不确定是否正确。我想知道解决这个问题的最佳方法是什么。
我正在将 iPodMusicPlayer 用于我的 MPMusicController。我想将音乐队列作为 MPMediaItemCollection。我怎样才能做到这一点? 在我的应用程序中,您可以
我正在尝试使用 iPodMusicPlayer 在我的应用程序中播放 bundle (文档目录)中的歌曲。 我不想玩 AVPlayer。 这是我的一些代码: NSString *bundleRoot
我正在使用 iPodMusicPlayer 播放 iPod 库中的歌曲。现在我想用 iPodMusicPlayer 播放文档目录中的歌曲。 我不想玩 AVPlayer。 如果可以,我该如何玩? 感谢您
我有一个奇怪的问题。我有一个使用 [MPMusicPlayerController iPodMusicPlayer] 的音乐应用程序。一切正常,轨道变化和播放状态变化的通知被触发。 我有一个屏幕,用户
我知道您可以轻松set the volume property of the music player ,但我想像 Google map 使用画外音进行导航说明一样顺利地做到这一点。 我想知道最好的方
我希望在后台播放音乐,并处理 iTunes Match 内容。 MPMusicPlayerController 的 iPodMusicPlayer 可以同时处理这两种情况,但在 iOS 8 中已弃用。
我是一名优秀的程序员,十分优秀!