アプリケーションで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)通知センター
(2)アプリケーション
(3)ここで音が出ない
したがって、これを有効にするために、アプリケーションのターゲットの機能でアプリ間オーディオをチェックしました。下の画像に示すようにオフでした。
アプリ間オーディオの機能
次に、オンに変更しました。下の画像のようになります。
それでも、iOS7デバイスではサウンドを再生しません。
なぜそれが機能しないのかについて誰かが何か考えを持っていますか?それは大きな助けになるでしょう。
ありがとう。
「邪魔しないで」モードをオフにしようとしましたか?同じ問題が発生しましたが、「サイレント」がオンになっていることがわかりました。それをオフにすると、すべて正しく機能します。
私の推測では、あなたのサウンドはOSで再生するために適切にフォーマットされていません。サウンドがIMA4形式でフォーマットされていることを確認してください。また、ファイルがアプリケーションバンドルに含まれていることを確認してください。これで、準備が整います。
詳細および同様の質問については、このSO質問を参照してください。
Appleのローカルおよびプッシュ通知ガイド へのリンクは次のとおりです。サウンドの詳細と、使用できるデフォルトのサウンドについて説明します。
.caf
の代わりに.mp3
ファイルを使用してみてください
afconvert -f caff -d LEI16@44100 -c 1 wolf.wav wolf_out.caf
同じ問題が発生したため、次の手順を実行する必要がありました。
ファイルをmp3またはwavからcafに変換します。他の回答で述べられているように、コマンドを使用してターミナルでwav、aif、mp3ファイルを変換できます。
afconvert -f caff -d LEI16@44100 -c 1 in.mp3 out.caf
Quicktime 7を使用して、次の設定で.aifとしてエクスポートすることもできます。線形PCMレート44.100線形PCMサンプルサイズ16これらのaifファイルはサポートされているようです。
ファイルが30秒未満、つまり29秒以下であることを確認してください。
バンドルのルートにファイルを追加します。Xcodeにドラッグアンドドロップするか、[ファイルを(プロジェクト名)に追加]を右クリックします。次のオプションを選択する必要があります。a)必要に応じてアイテムをコピーするb)ターゲットに追加する(ビルドname(s))4)拡張子を含む名前でファイルを参照します(例:notif.soundName = @"sound.caf";
テストの合間にデバイス/シミュレーターからアプリを削除してください。そうしないと、変更の結果が表示されません。
それでも問題が解決しない場合は、サウンドファイルファイルがプロジェクトのルートにあることを確認してください。ショーファイルインスペクターでサウンドファイル「TargetMembership」が選択されていることを確認します。
Mp3ファイルを何らかのツールで編集した場合、編集ツールで何かが見落とされた可能性があります。
ローカル通知音としてmp3ファイルを再生しようとしたときに同様の問題が発生しました。音は30秒より短く、束ねられており、表面上はすべてが規則正しく見えます。数時間後、私は問題がオンラインのmp3カッターツールによって引き起こされたことに気づきました。私はより良いエディターを見つけました、そしてファイルは通知で再生可能になりました。
「効果音」がミュートまたは低音でないことを確認してください。音量が大きい場合がありますが、効果音の音量がミュートの場合、ローカル通知が鳴らない場合があります。 iOSのホーム画面で音量を上げるボタンを押すと、音量を上げることができます。
まず、設定->通知センター->音がオフになっていないか試してみてください。次に、設定->音->スライダーがゼロになっていないかどうかを確認してください。つまり、音が出ないゼロの音があるかどうかを確認してください。お役に立てば幸いです。
なぜそれが機能したのか分かりませんでした。
しかし、ついに私は新しいプロジェクトxcode 5.0を作成し、古いプロジェクトをこの新しいプロジェクトに移植することで問題を解決しました。これはうまくいきました。だからそれは機能していて、私も音を出すことができます。
うまくいけば、それは他の人にも役立つでしょう。