0
AVAudioPlayerを使用して、バックグラウンドまたはメインスレッドでサウンドを再生する必要がありますか?バックグラウンドスレッドを使用してサウンドを再生してUIをブロックしない方が良いでしょうか?AVAudioPlayerを使用して、バックグラウンドまたはメインスレッドでサウンドを再生する必要がありますか?
AVAudioPlayerを使用して、バックグラウンドまたはメインスレッドでサウンドを再生する必要がありますか?バックグラウンドスレッドを使用してサウンドを再生してUIをブロックしない方が良いでしょうか?AVAudioPlayerを使用して、バックグラウンドまたはメインスレッドでサウンドを再生する必要がありますか?
あなたのサウンドを別のスレッドで再生すると、ブロックされている問題が解消されると思われます。
- (void)playingAudioOnSeparateThread: (NSString *) path
{
if(_audioPlayer)
{
_audioPlayer = nil; // doing this while a sound is playing might crash...
}
NSLog(@"start playing audio at path %@", path);
NSError *error = nil;
NSData *audioData = [NSData dataWithContentsOfFile:path];
_audioPlayer = [[AVAudioPlayer alloc] initWithData:audioData error:&error];
if (error == nil)
{
[_audioPlayer play];
}
}
- (void)playAudio:(NSString *)path
{
[NSThread detachNewThreadSelector: @selector(playingAudioOnSeparateThread:) toTarget: self withObject: path];
}
それはブロックされませんUIをします、それを:
これを実現するための最も簡単な方法は何をするのですか? – jokeman
これは非同期コールの権利ですか?私はあなたがメインスレッドでそれを呼び出すことができると思います。 – jokeman
何らかの理由でUIがブロックされることがあります.OrPlayを準備したり、再生を非同期にすることはできません。 – user1615898