2010-12-14 22 views
0

ローカル通知を受け取ったときに目を覚ます必要がある目覚まし時計を開発中です。デバイスがミュート状態になっても何も聞こえないときは、それを実装した2つのアプリ(無線アラーム)が表示されているので、私は尋ねています。ありがとう、tomer。iOSは、デバイスがミュート状態のときにローカル通知音を再生することが可能です

+5

もそのつもり劇場でみんなを困らせるのです... – Spacedman

答えて

3

AVAudioSessionの機能setCategoryをチェックしてください - それはあなたのためのトリックを行う必要があります。

はここでカテゴリの情報のためのリンクです:それはバックグラウンドで実行されている自分自身を保つためdeveloper.apple.com - Audio Session Categories

0

RadioAlarm、私はほとんど確信し、ミュート時再生することができます。ノーマルローカル通知(アプリが終了しても起動する通知)の場合は、ミュートスイッチや呼び出し音量を克服する方法が見つかりませんでした。

+1

は、ローカル通知に音声アラートを再生する方法を知っているが、バンドルされていない.wavファイルを再生しますか?たとえば、「牛乳を買う」という声を録音し、午後2時に通知を設定した場合は通知が表示されますが、ユーザーの介入なしに音が鳴りたいのですが...? – smorhaim

+0

Appleは明示的にバンドルに含まれていない.wavファイルにアクセスすることはできません。そのため、署名を破ることなく、バンドル内のファイルを取り除くことはできません。したがって、バンドルの最初から含まれていないサウンドを再生することはできません。 –

0
-(void)playSound:(NSString *)filePath 
    { 
     [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: nil]; 
     AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:[NSURL fileURLWithPath:filePath]]; 
     [playerItem addObserver:self forKeyPath:@"status" options:0 context:0]; 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem]; 
     self.audioPlayer = [[AVPlayer alloc] initWithPlayerItem:playerItem]; 
     [self.audioPlayer play]; 
    } 
関連する問題