0

Apple のリソースには多くの情報が含まれていますが、音声と通知について読んでもはっきりと理解できないことが 1 つあります。

バックグラウンドで実行されているアプリを作成して(電話がロックされている場合や消音されている場合でも)音を出すことは可能ですか?それをオフにする方程式?

ps 今のところ、私は主に Cordova フレームワークを使用していますが、Obj-C のヒントもいいでしょう。

4

2 に答える 2

1

はい、可能です。これにはUILocalNotificationを使用できます。

また、アップルは、バックグラウンドで音楽を再生しているアプリを許可しています。

バックグラウンド タスク機能については、次のリンクを確認してください。

  1. アプリケーションフローの管理
  2. iOS マルチタスク バックグラウンド タスク
  3. iOS デバイスがロックされているとき、または別のデバイスで再生中のバックグラウンド オーディオを処理する方法
于 2013-01-11T04:26:31.633 に答える
0

NSTimers のローカル通知を変更し ( https://github.com/mruegenberg/MMPDeepSleepPreventerを使用して非アクティブ モードで有効にしておく)、各アラームの時間間隔を計算できます。そうすれば、画面がロックされていてもオーディオを再生でき、これを次のファイルに貼り付けてサウンドをオフにできます- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

// Let the sound run with the screen blocked
NSError *setCategoryErr = nil;
NSError *activationErr  = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];

しかし、いくつかの問題があります:

  • アプリは 10 秒ごとにオーディオ ファイルを再生する必要があるため、ディープ スリープが発生せず、すべての NSTimer が強制終了されます。
  • Apple は、そのようなアプリを拒否する可能性があります。
  • ホームボタンでアプリを閉じることはできません。そうしないと、機能しません。
  • アラームを使用する必要があるたびにアプリを開く必要があります (スケジュールして忘れることはできません)。
  • アラームが鳴ると、iPhone のロック画面しかないので、まずロックを解除してから、アプリ内からアラームを停止する必要があります。

Apple では、目覚まし時計アプリの競合他社を望んでいません。それは確かです! App Store で目にする目覚まし時計アプリのほとんどすべてが、このお粗末なアプローチを使用しています。

于 2013-12-04T09:51:12.163 に答える