我正在为 iOS 开发一个应用程序,它以两种不同的模式工作,其中一种播放 iPod 库中的音乐,另一种合成声音(例如:纯音)。
为了合成声音,我使用了一个音频单元,所以通过它的回调我可以传递所需的信号。至于必须以特定音量播放声音,我使用 iPodMusicPlayer 设置设备音量。
我看到的问题是应用程序在打开后第一次在iPod Touch 5g上运行时,一旦使用iPodMusicPlayer设置设备的音量,applicationMusicPlayer将不会响应停止。
我想出了以下代码。开机后在iPod Touch 5g上运行,点击停止后音乐不会停止。
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
MPMusicPlayerController *mp = [MPMusicPlayerController iPodMusicPlayer];
mp.volume = 0.3;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)playAction:(id)sender {
MPMusicPlayerController *mp = [MPMusicPlayerController applicationMusicPlayer];
MPMediaQuery *query = [MPMediaQuery songsQuery];
[mp setQueueWithQuery:query];
[mp play];
}
- (IBAction)stopAction:(id)sender {
MPMusicPlayerController *mp = [MPMusicPlayerController applicationMusicPlayer];
[mp stop];
}
@end
PS:也可以通过进入音乐应用程序,退出它(双击home键并从多任务栏退出音乐),最后运行上面的代码来重现问题。
在迄今为止我测试过的其他设备(iPad 第 2 代和第 3 代,iPod Touch 4 代)中,该应用程序运行良好。
提前致谢。