web-dev-qa-db-ja.com

UILocalNotificationカスタムサウンドがiOS7で再生されていません

アプリケーションでUILocalNotificationを使用しています。

アプリケーションでは、条件付きで再生される2つのサウンドがあります-私はそれらに適切な条件を適用しました。

しかし、アプリケーションをインストールしてiOS 7デバイスで実行すると、ローカル通知が発生しますが、アプリケーションでサウンドが再生されません。

通知を設定するためのコードを以下に示します。

    UILocalNotification *localNotification = [[UILocalNotification alloc] init];
    if (localNotification == nil)
        return;
    localNotification.fireDate = [pickerView date];

    localNotification.timeZone = [NSTimeZone defaultTimeZone];

    if (alarm_number == 1) {
        localNotification.alertBody = [NSString stringWithFormat:@"First Alarm"];
    }
    else
    {
        localNotification.alertBody = [NSString stringWithFormat:@"Second Alarm"];
    }

    localNotification.alertAction =@"Ok";

    NSString *message = [[NSString alloc]initWithString:@""];

    if(alarm_number == 1)
    {
        localNotification.soundName=@"Alarm_1.mp3";
        message = @"First Alarm Scheduled";
    }
    else
    {
        localNotification.soundName=@"Alarm_2.mp3";
        message = @"Second Alarm Scheduled";
    }

    localNotification.applicationIconBadgeNumber = 1;

    // Specify custom data for the notification
    NSString *alarmString;
    if (alarm_number==1) {
        alarmString = [NSString stringWithFormat:@"First Alarm"];
    }
    else
    {
        alarmString = [NSString stringWithFormat:@"Second Alarm"];
    }

    NSDictionary *infoDict = [NSDictionary dictionaryWithObject:alarmString forKey:@"AlarmFor"];

    localNotification.userInfo = infoDict;

    // Schedule the notification
    [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
    [localNotification release];

私がチェックしたのは、私のアプリの設定/通知センターアプリのサウンド設定です。

私がチェックしたものを見るために1番目から3番目の画像を通過してください。

(1)通知センター

(1) Notification Center

(2)アプリケーション

enter image description here

(3)ここで音が出ない

enter image description here

したがって、これを有効にするために、アプリケーションのターゲットの機能でアプリ間オーディオをチェックしました。下の画像に示すようにオフでした。

アプリ間オーディオの機能

Capabilities in Inter-app audio

次に、オンに変更しました。下の画像のようになります。

Capabilities after changed On

それでも、iOS7デバイスではサウンドを再生しません。

なぜそれが機能しないのかについて誰かが何か考えを持っていますか?それは大きな助けになるでしょう。

ありがとう。

17

「邪魔しないで」モードをオフにしようとしましたか?同じ問題が発生しましたが、「サイレント」がオンになっていることがわかりました。それをオフにすると、すべて正しく機能します。

10
wzhang84

私の推測では、あなたのサウンドはOSで再生するために適切にフォーマットされていません。サウンドがIMA4形式でフォーマットされていることを確認してください。また、ファイルがアプリケーションバンドルに含まれていることを確認してください。これで、準備が整います。

詳細および同様の質問については、このSO質問を参照してください。

ローカル通知のカスタムサウンドを選択

Appleのローカルおよびプッシュ通知ガイド へのリンクは次のとおりです。サウンドの詳細と、使用できるデフォルトのサウンドについて説明します。

2
vijay

.cafの代わりに.mp3ファイルを使用してみてください

afconvert -f caff -d LEI16@44100 -c 1 wolf.wav wolf_out.caf
2
thesummersign

同じ問題が発生したため、次の手順を実行する必要がありました。

  1. ファイルをmp3またはwavからcafに変換します。他の回答で述べられているように、コマンドを使用してターミナルでwav、aif、mp3ファイルを変換できます。

    afconvert -f caff -d LEI16@44100 -c 1 in.mp3 out.caf

  2. Quicktime 7を使用して、次の設定で.aifとしてエクスポートすることもできます。線形PCMレート44.100線形PCMサンプルサイズ16これらのaifファイルはサポートされているようです。

  3. ファイルが30秒未満、つまり29秒以下であることを確認してください。

  4. バンドルのルートにファイルを追加します。Xcodeにドラッグアンドドロップするか、[ファイルを(プロジェクト名)に追加]を右クリックします。次のオプションを選択する必要があります。a)必要に応じてアイテムをコピーするb)ターゲットに追加する(ビルドname(s))4)拡張子を含む名前でファイルを参照します(例:notif.soundName = @"sound.caf";

テストの合間にデバイス/シミュレーターからアプリを削除してください。そうしないと、変更の結果が表示されません。

それでも問題が解決しない場合は、サウンドファイルファイルがプロジェクトのルートにあることを確認してください。ショーファイルインスペクターでサウンドファイル「TargetMembership」が選択されていることを確認します。

1
moride

Mp3ファイルを何らかのツールで編集した場合、編集ツールで何かが見落とされた可能性があります。

ローカル通知音としてmp3ファイルを再生しようとしたときに同様の問題が発生しました。音は30秒より短く、束ねられており、表面上はすべてが規則正しく見えます。数時間後、私は問題がオンラインのmp3カッターツールによって引き起こされたことに気づきました。私はより良いエディターを見つけました、そしてファイルは通知で再生可能になりました。

0
slobodans

「効果音」がミュートまたは低音でないことを確認してください。音量が大きい場合がありますが、効果音の音量がミュートの場合、ローカル通知が鳴らない場合があります。 iOSのホーム画面で音量を上げるボタンを押すと、音量を上げることができます。

0
Rik

サウンドがメインバンドルに追加されていることを確認してください! enter image description here

0
smileBot

まず、設定->通知センター->音がオフになっていないか試してみてください。次に、設定->音->スライダーがゼロになっていないかどうかを確認してください。つまり、音が出ないゼロの音があるかどうかを確認してください。お役に立てば幸いです。

0
shubham jain

なぜそれが機能したのか分かりませんでした。

しかし、ついに私は新しいプロジェクトxcode 5.0を作成し、古いプロジェクトをこの新しいプロジェクトに移植することで問題を解決しました。これはうまくいきました。だからそれは機能していて、私も音を出すことができます。

うまくいけば、それは他の人にも役立つでしょう。

0