1

我正在为 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 代)中,该应用程序运行良好。

提前致谢。

4

0 回答 0