Можно ли воспроизводить звук без остановки музыки? - PullRequest
1 голос
/ 05 апреля 2010

Я использую AVFoundation Framework для воспроизведения звука. Если во время воспроизведения звука играет музыка, она останавливается. Есть ли способ избежать этого?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2010

Да, вы хотите настроить аудио сеанс так, чтобы ваши звуки звучали как "окружающие" звуки. Вот как я делаю это в своей игре:

// Configure the audio system
AudioSessionInitialize(NULL, NULL, NULL, NULL);
UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
AudioSessionSetActive(true);
0 голосов
/ 31 июля 2012

хорошо, это хорошая идея для импорта JGMediaPickerController, если вы используете это, вы можете создать объект, который вы можете воспроизвести после воспроизведения звука, это то, что я сделал, чтобы исправить это (мое приложение позволяет пользователю «открывать» локальная музыка на экране iTunes-Like, но когда я воспроизводил другой звук, музыка остановилась, поэтому я решил ее следующим образом:

по моему .ч

#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];
}

и, наконец, когда я нажимаю кнопку, чтобы воспроизвести звук, я снова вызываю «play» в моем MPMusicPlayerController, чтобы запустить музыку там, где она останавливается

- (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];
}

с помощью этого музыка приостанавливается, звучит ваш звук, и, наконец, когда он останавливается, музыка снова начинает воспроизводиться ...

Я знаю, что, возможно, этот ответ больше не нужен, но у меня была эта проблема, и я уверен, что найдутся люди, которые ищут способ сделать это, поэтому я публикую этот ответ, надеюсь, он кому-нибудь поможет там :) 1016 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...