2012-06-08 2 views
0

피아노 응용 프로그램이 있습니다. 약간의 실수로 문제가 없습니다. 나는 동시에 매우 빠른 여러 개의 키를 재생하면 사운드는 몇 초를 위해 사라지고, 여기AudioQueueStart mediaserverd를 죽일 메시지 게시

가있다 mediaserverd을 죽일

AudioQueueStart 게시 메시지 콘솔에 다음과 같은 메시지가 나타납니다 관련 코드 :

-(IBAction)playNoteFromKeyTouch:(id) sender{ 

    [NSThread detachNewThreadSelector:@selector(playNote:) toTarget:self withObject:[NSString stringWithFormat:@"Piano.mf.%@",[sender currentTitle]]]; 

} 

-(void)playNote:(NSString *) note{ 
    NSError *err; 
    NSString *path = [[NSBundle mainBundle] pathForResource:note ofType:@"aiff"]; 
    AVAudioPlayer *p = [[AVAudioPlayer alloc ] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&err]; 
    p.delegate = self; 
    if (err) { 
     NSLog(@"%@", err); 
    }else{ 
     [p prepareToPlay]; 
     [p play]; 
    } 
} 

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 
{ 
    [player release]; 
} 

필자는 Instruments에서 테스트했으며 메모리 누수가 없습니다. 누군가가이 오류를 피할 수있는 아이디어를 가지고 있다면 감사 할 것입니다.

+0

[iphone : mediaserverd를 죽일 수있는 게시 메시지] 가능한 복제본 (http://stackoverflow.com/questions/3762675/iphone-audio-posting-message-to-kill-mediaserverd) –

답변

0

AVAudioPlayer 대신 SoundBankPlayer를 사용하여 문제를 "해결"했습니다. SoundBanker info.

1

this message에 따르면 장치의 음소거 스위치입니다.

이 장치의 물리적 스위치를 통해 뮤트 아이 패드를 가진 것은 내 응용 프로그램과 함께 문제를 일으키는 것을 밝혀졌습니다. 단추가 스위치가 켜져 있지 않으면 문제가 발생하지 않습니다.

쉬 쉬. 프로그래밍 방식으로 재정의하는 방법?

3

비슷한 문제가 있습니다.

나는이 문제를 해결하기 위해 노력 연령을 보냈다, 나는 때 내 특정 문제가 발생 생각 : 나는 음소거 스위치가 켜져있는 동안 소리를 재생할 수없는 AudioCategory에있어

  1. .
  2. 나는 사운드를 재생하기 시작했다. (나는 실제로 앱에서 이것을하지 않지만, 이것이 어떻게 재현 할 수 있는지를 보여준다.)
  3. 사운드가 계속 재생되는 동안 음소거 스위치가 켜져있는 동안 사운드가 재생되지 않도록 다른 AudioCategory로 전환됩니다.

AudioSession API의 호출에서 다양한 점을 보이는 'mediaserverd를 죽이는 메시지 게시'가 표시됩니다. 앱이 멈추고 기기가 멈추고 기기가 정상적인 작동 상태로 돌아 오기 위해 고생하고 있습니다.

관련 문제