2

AudioToolbox/AudioServices ライブラリを使用して音声通知を再生する短いメソッドがあります (簡潔にするためにほとんどの機能コードを削除しました)。

- (IBAction)thatWasEasy:(id)sender {

    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *filePath = [mainBundle pathForResource:@"easy" ofType:@"mp3"];
    NSURL *aFileURL = [NSURL fileURLWithPath:filePath isDirectory:NO];

    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((__bridge_retained CFURLRef)aFileURL, &soundID) ;
    AudioServicesPlaySystemSound(soundID);     
}

オーディオは、iPad 1 および iPad 2 デバイスと同様にシミュレーターでも正しく再生されますが、iPad 3 (Verizon LTE バージョン) では音が聞こえません。デバイスのサウンド設定を徹底的にチェックし、オーディオ ファイルの種類を wav と caf に変換しましたが、動作に違いはありませんでした。

これをもう少し深くトラブルシューティングするための提案はありますか? 残念ながら、比較用の iPad 3 は他にありません。助けてくれてありがとう!

4

2 に答える 2

0

理解した。[設定] に移動し、[一般] タブの [サウンド] を選択すると、着信音とアラートの音量レベルがゼロより大きいことを確認できます。スライダーを動かすと、デバイスは新しく設定されたレベルでチャイムを鳴らします。さらに、以下のリストで特定のトーンがすべて有効になっていることに注意してください。これは、デバイスの設定を確認するときに私を驚かせたものです。YouTubeなどのアプリを立ち上げてみたところ、音は問題なく再生できました。

別の人 (この製品をもう少しよく知っている人) と話すまで気がつかなかったのは、システム サウンドをミュートする別の方法があるということです。丸ボタンを 2 回押すと、画面の下部にアイコン バーが表示されます。アイコンを指で右にドラッグすると、スピーカー アイコンが表示されます。これは、何らかの理由でたまたまミュートされていました...おそらく、最近システムの復元を実行した後です。タップしてミュートを解除し、ビジネスに戻ります。Apple がこのように設計した理由は不明ですが、デバイスの設定でアクセスできるようになっていれば、役に立ちました (そして、いじくり回す時間を数時間節約できました)。

于 2012-09-04T17:22:45.680 に答える
0

AudioServicesPlaySystemSound AudioServicesPlaySystemSound apple documentを使用してデバイスで mp3 ファイルを再生できるとは思わない

-(void)playAif:(NSString *)filename {
//  NSLog(@"play: %@", filename);

SystemSoundID soundID;
NSString *path = [[NSBundle mainBundle]
                  pathForResource:filename ofType:@"aif"];    


if (path) { // test for path, to guard against crashes

    UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;    // 1

    AudioSessionSetProperty (
                             kAudioSessionProperty_AudioCategory,                        // 2
                             sizeof (sessionCategory),                                   // 3
                             &sessionCategory                                            // 4
                             );

    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path],&soundID);
    AudioServicesPlaySystemSound (soundID);

}
}
于 2012-09-04T17:25:05.430 に答える