2017-04-17 9 views
0

私はSwiftで書かれた仕事中の音楽アプリを持っています。 スリープモードを統合して、10分後に再生される音楽を一時停止することができます。 この作業にはperform(_ aSelector: Selector, with anArgument: Any?, afterDelay delay: TimeInterval)を使用しましたが、うまくいきました。音楽のスリープモードを統合するために、スリープ状態にならないようにする方法

しかし、問題があります。 10分前にiPhoneがスリープ状態になる可能性が高いので、一時停止機能は呼び出されず、音楽は引き続き再生されます。

10分後にアクションを送信する方法が他にもあると私は理解していますが(NSTimer、GCDを使用してください)、わかっていれば、この解決策はどれもマシンをスリープ状態にしたり、仕事。

おそらく、私はbackground modeを使用していますが、可能性:

  1. 私の目標は、このモードを解決することになっているという問題では本当にないです。私は仕上げの時間がほしいとは思っていませんが、私はちょうど特定の時間に2番目のプロセッサの1/10をほしいと思っています。
  2. このオプションでは、10分間の作業を保証するものではありません。

これは私が必要とするものを達成する方法ですか?あなたが行うことができます

+1

あなたがのUIApplication 'と一緒に寝て行くからデバイスを防ぐことができるObjective-Cでスウィフト2または[UIApplication sharedApplication].idleTimerDisabled = YES;UIApplication.sharedApplication().idleTimerDisabled = trueを行うことができよう。 shared.isIdleTimerDisabled = true'ですが、それはおそらくお風呂の水で赤ちゃんを捨ててしまうでしょう。 – Erik

答えて

2

UIApplication.shared.isIdleTimerDisabled = true、これはスウィフト3における唯一の方法である、とあなたが

+1

これは動作していますが、私には2つの問題があります。最初はディスプレイをオンにして、それは私の目的にとって必須ではありませんでした。しかしもっと重要なこと:Appleはこの設定でアプリを検証する予定ですか? (たとえアプリケーションがサウンドを一時停止するとすぐにそれを無効にしても)他のものは、アップルの特定の種類のAppsに対してのみ、同じ種類の結果を取得することを意味します。 – FredericP

+0

それがあなたが必要としていないものなら、私は残念です。私はそれ以外のことは知らない。そして、はい、Appleはそれを許可します:私はその機能を持つアプリの負荷を見た - すみません、私は本当にそれほど役に立ちませんでした。 –

関連する問題