2012-03-11 9 views
5

ラジオの目覚まし時計で作業していますが、いくつか問題があります。 私はアラームのローカル通知を使用しているので、アプリが実行されていない場合は穏やかなフォールバックがあります。デバイスがロックされたときのイベントへの応答

私はデバイスの限界を十分に認識しており、デバイスがバックグラウンドになったときにできることとできないことを知っています。

私の質問はこれです: 私はデバイスをロックしたときにオーディオストリーマーを開始する他のアプリを見ました。これはどのように可能ですか?これは実行時間枠内にあるかもしれませんか?

これを実装する最良の方法はなんですか?デバイスがロックされているときにストリーミングセッションを有効にする方法はありますか?

編集

明確にする:私は、私は、バックグラウンドでオーディオ再生を作る方法を知っています。しかし、この問題は、ローカル通知や他のイベントが発生したときにオーディオ再生をトリガーしています。

このようなアプリは、Radio Alarm Clockです。私はまだそれを長い間試していない。しかし、これを行うようです。アプリの動画デモ:http://www.youtube.com/watch?v=KJQiFOcdBWk

+0

私が以前に答えたとき、私はこれが少し難しいと思っていました。それを実装しようとすると、私は同じ問題に遭遇しました。この仕事をしている他のアプリを教えてもらえますか? –

+0

これを行う1つのアプリを指摘するために私の答えを編集しました。 – Jensen2k

+0

結局のところ、私は自分の答えを編集して問題への新しいアプローチを組み込んだようです。 –

答えて

3

あなたのバックグラウンドタスクは既に宣言していますか?

いくつかのバックグラウンド実行のサポートは、それらを使用するアプリケーションによって事前に宣言する必要があります。アプリはInfo.plistファイルを使用してサービスのサポートを宣言します。 UIBackgroundModesキーをInfo.plistファイルに追加し、次の文字列の1つ以上を含む配列にその値を設定します。

audio - アプリはバックグラウンドでユーザーに可聴コンテンツを再生します。 (このコンテンツは、AirPlayの使用してストリーミングオーディオまたはビデオコンテンツを含む。)

iOS App Programming Guide - Implementing Long Running Background Tasks

あなたは、あなたがに「必要なバックグラウンドモード」を追加することができる情報タブの下で、メインプロジェクトのアイコンをクリックすることで、これを追加することができます

カスタムiOSターゲットのプロパティをご覧ください。 「App Plays Audio」は3つのデフォルト値の1つになります。

ビッグ編集新しい答えを:UIApplication Class Reference

他のすべてが順番にすでにある場合は、のUIApplication方法ここでは詳述

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler 

を使用してバックグラウンドで実行されているアプリケーションを保つことができますここに例を示します:Hour 21: Building Background-Aware Applications

これにより、yをトリガーするNSTimerのインスタンスを実行できます私たちの音楽プレーヤー。このアプローチとUILocalNotificationsの違いは、この方法ではアプリがバックグラウンドモードに完全に入ることができないということです。音楽プレーヤーはバックグラウンドから作成する必要性を完全に排除します。

設定可能なタイマーの長さに制限がありますが、過去14分間はテストしていません。

+0

いいね、私はプロジェクトに宣言をどこに追加するのかを編集しました。 –

+0

ありがとう、私はこれについて知っているが、これは実際に私が求めているものではありません。私はバックグラウンドモードとバックグラウンドオーディオについて知っています。しかし、私が本当に望むのは、将来、アプリで何かを起動することです。 私の詳細は最初の質問を編集しました。 – Jensen2k

+0

ありがとう、私は私がうまくいくと思うので、答えを受け入れました。それは良い答えです。しかし、私のユースケースではうまくいきませんでした。私がやったことは、ここにあるMMPDeepSleepPreventerを実装していたことです:https://github.com/marcop/MMPDeepSleepPreventer どうもありがとうございました! :-) – Jensen2k

関連する問題