Iphone 可以在不停止音乐的情况下播放声音吗?

Iphone 可以在不停止音乐的情况下播放声音吗?,iphone,audio,Iphone,Audio,我使用AVFoundation框架来播放声音。如果我播放声音时正在播放音乐,音乐将停止。有没有办法避免这种情况 是的,您希望配置音频会话,将您的声音视为“环境”声音。以下是我在游戏中如何做到这一点: // Configure the audio system AudioSessionInitialize(NULL, NULL, NULL, NULL); UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; AudioSessio

我使用AVFoundation框架来播放声音。如果我播放声音时正在播放音乐,音乐将停止。有没有办法避免这种情况

是的,您希望配置音频会话,将您的声音视为“环境”声音。以下是我在游戏中如何做到这一点:

// Configure the audio system
AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetActive(true);

嗯,导入JGMediaPickerController是个好主意,如果你使用它,你可以创建一个对象,在你播放一个声音后可以播放,这就是我修复它的方法(我的应用程序允许用户在类似iTunes的屏幕上“打开”本地音乐,但是,当我播放另一个声音时,音乐停止了,所以我这样解决它:

在我的

#import "JGMediaPickerController.h"
@property (nonatomic, retain) JGMediaPickerController *mediaPickerController;
然后,在

要创建和控制itunes屏幕,请执行以下操作:

- (IBAction)showMediaButtonTouchUpInside:(id)sender {
if(self.mediaPickerController == nil) {
    self.mediaPickerController = [[[JGMediaPickerController alloc] init] autorelease];
    self.mediaPickerController.delegate = self;
}
[self presentModalViewController:self.mediaPickerController.viewController animated:YES];
}

- (void)jgMediaPicker:(JGMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection selectedItem:(MPMediaItem *)selectedItem {
[[MPMusicPlayerController iPodMusicPlayer] setQueueWithItemCollection:mediaItemCollection];
[[MPMusicPlayerController iPodMusicPlayer] setNowPlayingItem:selectedItem];
[[MPMusicPlayerController iPodMusicPlayer] play];

[self dismissModalViewControllerAnimated:YES];
}

- (void)jgMediaPickerDidCancel:(JGMediaPickerController *)mediaPicker {
[[MPMusicPlayerController iPodMusicPlayer] stop];
[self dismissModalViewControllerAnimated:YES];
}
最后,当我点击按钮播放声音时,我在我的MPMusicLayerController中再次调用“播放”,在音乐停止的地方启动音乐

- (IBAction)startWorkout{
    self.path = [[NSBundle mainBundle] pathForResource:@"sound1" ofType:@"wav"];
    [startStopButton setTitle:@"START" forState:UIControlStateNormal];
self.clickAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:self.path] error:NULL];
[self.clickAudio play];
[[MPMusicPlayerController iPodMusicPlayer] play];
}
使用此选项,音乐将暂停,您的声音将响起,最后,当它停止时,音乐将再次开始播放

我知道这个答案可能已经没有必要了,但我遇到了这个问题,我相信会有一些人在寻找解决方法,这就是我发布这个答案的原因,希望它能帮助其他人:)