Как воспроизвести несколько аудио файлов в фоновом режиме в iOS 4? - PullRequest
0 голосов
/ 21 сентября 2010

Я запускал аудио в фоновом режиме в своем приложении для iPhone, используя AVAudioPlayer и AVAudioSession ...

Теперь моя проблема заключается в том, что у меня уже есть письменный код, который принимает несколько песен в качестве ввода от пользователя и воспроизводитих один за другим с помощью AVAudioPlayer ...

Проблема заключается в том, что когда приложение переходит в фоновый режим во время воспроизведения одного из файлов, звук продолжается, но когда это делается, звук исчезает ...На переднем плане, когда файл готов, я просто делаю некоторый код для воспроизведения следующего, но в фоновом режиме это невозможно ...

Я думал о том, чтобы попросить немного времени, чтобы сделать это и запустить мой код, ноЯ не могу этого сделать, так как аудиофайлы всегда меняются, и они могут быть длинными ... Поэтому, скажите, пожалуйста, что мне делать?Есть ли встроенный плейлист, который работает как фоновый звук?или есть другое решение?Мне действительно нужно получить это на работу ...

большое спасибо

Ответы [ 3 ]

2 голосов
/ 23 октября 2010

Я столкнулся с той же проблемой и еще не полностью решил ее.Метод делегата audioDidFinishPlaying по-прежнему срабатывает, и вы можете использовать beginBackgroundTask UIAplication для создания нового экземпляра AVaudioPlayer, убедиться, что AVAudioSession все еще активен и т. Д. Но когда я пытаюсь воспроизвести новый экземпляр AVAudioPlayer, он немедленно останавливается.Я подозреваю / боюсь, что нет никакого способа запустить аудио из фона, только продолжайте его воспроизводить, когда произойдет переход состояния приложения.Я бы хотел ошибиться.

0 голосов
/ 19 мая 2015
//ViewController.h ,write below code
@interface ViewController :   UIViewController<AVAudioRecorderDelegate,AVAudioPlayerDelegate>

//assign property to player
 @property(nonatomic,retain) AVAudioPlayer *player;

//then write in ViewController.m file in ViewDidLoad Method below code

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

NSError *soundError;
NSString *path=[[NSBundle mainBundle]pathForResource:@"soundFileName" ofType:@"mp3"]; //.mp3 file for player
NSURL *file=[[NSURL alloc]initFileURLWithPath:path]; //path
_player=[[AVAudioPlayer alloc]initWithContentsOfURL:file error:&soundError];       //player Object

if(_player == nil)
{
    NSLog(@"player is empty because of %@",soundError);
}
else
{
    [_player play];
    _player.volume=1.0;
    [_player setDelegate:self];
}

// для остановки игрока вы можете использовать // [_player stop]; // раскомментируйте эту строку, когда хотите ее остановить.

0 голосов
/ 26 августа 2012

это просто .. просто измените категрию, если вы используете аудио сеанс, который ...

http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategories/AudioSessionCategories.html

ссылка имеет категории ... поэтому используйте одну изэто и вы сможете запустить звук в фоновом режиме: AVAudioSessionCategoryPlayback kAudioSessionCategory_MediaPlayback

  • окружающий может не работать.
...