問題タブ [multitasking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1564 参照

iphone - コアオーディオとiPhoneのバックグラウンド実行の問題を特定しようとしています

ストアにオーディオ アプリがあります。iOS 4.0 より前のバージョンの iPhone OS では問題なく動作します。アプリを新しい iOS マルチタスク機能に準拠させることから始めて、新しいバージョンに取り組んでいます。(私の iPhone には iOS 4.0 があり、最新の xCode と SDK にアップグレードしました。)

結果はショーストッパーでした。

o iPhone にアプリをインストールしてデバッガーで実行するか、iPhone の電源を切った後にアプリを起動すると、アプリは問題なく動作します。アプリが前回実行された時間。

o ホーム ボタンを押してバックグラウンドからアプリを再起動しようとすると、オーディオ (a および 1-n オーディオ ストリームのミックス) が、私だけが認識できる途切れ途切れの音で出てきます。

o 音声がきれいなうちに iPhone に電話をかけた場合、電話に出るか拒否することができます。どちらの場合も、アプリは正常に戻り、正常に再生されます。

バックグラウンド モードでは何も再生しようとしていないことに注意してください。私は単に物事を止めて、尋ねられたら元に戻したいだけです。

テクノロジー: すべてのオーディオ ロジックは RemoteIO を使用します。(私はいつかかなり洗練された信号処理を行う計画を持っています。)

疑似コードの説明はご容赦ください。実際のコードの一部はかなり広範です。

MainViewController:

o viewDidLoad - 特別なことは何もありません

o didBecomeActive は、自分自身をオーディオ セッション デリゲートとして設定します。AudioSessionCategory を MediaPlayback に設定します。AudioSessionActive を設定します。プレーヤーを作成します (以下を参照)。以前に再生されていたサウンドを再開します。

o willResignActive 再生中の状態を保存します。stopAllSounds; プレーヤーを停止します。オーディオ セッションを非アクティブに設定します。

o didEnterBackground - なし (メソッドは登録されていますが、コンテンツはありません。)

o willEnterForeground - なし (メソッドは登録されていますが、コンテンツはありません。)

Player の概要 - 私のクラス: Player はシングルトンです。didBecomeActive で、シングルトン インスタンスが破棄され、新しいインスタンスが作成されていることを確認します。シングルトンをインスタンス化すると、実際に AudioUnit が開始されます。

コンストラクター setupRemoteIO; AudioOutputUnitStart を開始します。AudioOutputUnitStop を停止します。プレーヤーは通常のものをコールバックします。

>

ここに私の MainViewController からのいくつかのメソッドがあります:

以下は NaturePlayer のメソッドです。

}

私はチェックしました:stop()が呼び出され、次にAudioOutputUnitStop()を呼び出します。またチェック: AudioOutputUnitStop のドキュメントには、すべてのアクティビティが完了するまでブロックすると書かれています。

0 投票する
1 に答える
116 参照

iphone - iOS 4 でマルチタスクを禁止する方法はありますか?

ユーザーがホームボタンをタップしたときに、バックグラウンドに移行せずにアプリを終了させたい。これは可能ですか?

0 投票する
1 に答える
3612 参照

iphone - アプリがフォアグラウンドに入ったときにView Controllerのコンテンツを更新する

ユーザーが生成したコンテンツを含むいくつかのタブを持つタブ バーを備えたアプリがあります。各ビュー コントローラーが読み込まれると、viewDidLoad メソッドがサーバーに HTTP リクエストを送信してデータを取得し、それに応じてそのビューにデータを入力します。ただし、すべてのデータがロードされると、ビューは同じままです (View Controller がアンロードされて再ロードされない限り)。

ユーザー生成コンテンツを使用する他の多くのアプリも同様の動作をしますが、アプリがバックグラウンドに移行してから再びフォアグラウンドに戻ると、各ビューがリロードされます。つまり、アプリがアクティブなときにユーザーがさまざまなタブを切り替えても、コンテンツは自動的に更新されません。ユーザーがアプリを「終了」し、後でアプリに戻ると、ビューが再読み込みされます。

このように動作するようにアプリを設計するための標準的な方法はありますか? 具体的には、アプリの「再起動」に関するビューを更新するために利用できる UIKit の機能があるかどうか疑問に思っています。

それ以外の場合、簡単な方法は、viewDidLoad で各ビュー コントローラーを通知用に登録し、アプリがフォアグラウンドに入るのをリッスンすることだと思います。その後、コントローラーはデータをリロードすることで各通知に応答できます。

0 投票する
2 に答える
307 参照

iphone - マルチタスクと終了

アプリがバックグラウンドに移動した場合、ユーザーがマルチタスキング バーを介してアプリを強制終了するというイベントに反応する可能性はありますか? 私の観察によると、applicationWillTerminate:呼び出されません。

この場合、終了する前にクリーンアップする可能性はないように思えます。

0 投票する
0 に答える
1586 参照

iphone - iOS がバックグラウンド アプリを終了させるリモート コントロール イベント

私のアプリは、AVAudioPlayer を使用してバックグラウンド オーディオを再生し、iOS からリモート コントロール イベントを受信します。オーディオの再生中はすべて正常に動作しますが、オーディオが一時停止し、アプリがバックグラウンドに移動すると、何かおかしなことが起こります。Bluetooth デバイスを使用して 10 分後にオーディオを再開/一時停止すると、iOS は次のメッセージでアプリを終了します。

これには非常に奇妙なことが 2 つあります。

  1. iOS は 10 分を過ぎてもアプリをシャットダウンしません。Bluetooth経由でリモートコントロールコマンドを受信した後にのみ実行されます。

  2. iOS のリモコン ボタンまたはヘッドフォンのリモコンを使用すると、アプリは問題なくオーディオの再生を再開します。

Bluetooth リモート コントロール メッセージによって iOS がアプリを終了させる理由がわかりません。Pandora アプリでは同様の問題が発生していないようです。

誰もこれについて手がかりを持っていますか?

更新: さらなるテストにより、バグのより明確な説明が明らかになりました。オーディオが 10 分以上一時停止され、アプリケーションでメモリ不足の警告が発生した後、バックグラウンド オーディオを再開しようとすると、このアプリケーションの強制的な iOS クラッシュが発生するようです。

バグを再現するには、次の手順が必要です。

  1. アプリケーションのオーディオを一時停止してからバックグラウンドに送信する (ホーム ボタンを押すか、別のアプリに切り替える) か、アプリケーションがバックグラウンドにある間にアプリケーションのオーディオを一時停止します。
  2. アプリケーションでメモリ不足の警告が発生するようにする (シミュレートまたは実際の)
  3. 10 分後、Bluetooth デバイスやスピーカー ドックなどのデバイスからトリガーされたリモート コントロール イベントを使用してオーディオの再生を試みます。

注: iOS は、最後のリモート コントロール イベントが Bluetooth デバイス、スピーカー ドック、またはカー アダプターなどの外部デバイスから開始された場合にのみ、アプリケーションを強制的にクラッシュさせるようです。iOS の組み込みの「リモート コントロール」インターフェイスまたはヘッドフォンのリモート コントロールを使用しても、クラッシュは発生しないようです。

ジョージがコメントで述べたように、私は自分のアプリ、パンドラ、および少なくとも 1 つの他のオーディオ再生アプリでこれを再現できました。Appleにバグレポートを提出しました。

0 投票する
3 に答える
1551 参照

iphone - iOS 4 で複数のオーディオ ファイルをバックグラウンドで再生する方法は?

AVAudioPlayer と AVAudioSession を使用して、iPhone アプリのバックグラウンドでオーディオを実行しました...

今私の問題は、ユーザーからの入力として多数の曲を受け取り、AVAudioPlayerを使用して次々と再生するコードが既にあることです...

問題は、ファイルの1つが再生されている間にアプリがバックグラウンドに移動すると、オーディオは継続しますが、完了すると音が消えることです...ファイルが完了したときにフォアグラウンドで、私はいくつかのコードを実行して次のものですが、バックグラウンドではこれは不可能です...

これを完了させてコードを実行する時間を要求することを考えましたが、音声ファイルは常に変更され、長くなる可能性があるため、これを行うことはできません...どうすればよいか教えてください? バックグラウンド オーディオとして実行される組み込みのプレイリスト プレーヤーはありますか? または他の解決策はありますか?私は本当にこれを機能させる必要があります...

どうもありがとう

0 投票する
1 に答える
126 参照

ios4 - バックグラウンドで実行される iPhone 用のアプリを作成する方法を説明できる人はいますか?

バックグラウンドで動作するアプリを iPhone で作成することが技術的に可能かどうかを知りたいです。音声の再生中や GPS、VOIP などのピギーバック、サードパーティ API の使用などです。オーディオ再生を使用して作成できました。今、私は他の可能性を探しています。これがアプリ ストアで承認されないことはわかっていますが、技術的な問題ではなく、アプリ ストアの承認の問題なのかどうかを知りたいだけです。ありがとう。

0 投票する
3 に答える
13136 参照

ios4 - iOS4 の Phonegap バックグラウンド サービス?

iOS 4 で実行されている phonegap アプリケーションを、アクティブなアプリではないときにバックグラウンド サービスにすることはできますか?

もしそうなら、どのように?

0 投票する
5 に答える
1735 参照

iphone - SimpleAudioEngine が原因でバックグラウンドでアプリがクラッシュする

そのため、 SimpleAudioEngine を使用して Cocos2D ゲームでいくつかの効果を再生しようとしていますが、それらを追加した後、バックグラウンド (マルチタスク) になるとアプリがクラッシュします。インターネットでこの問題を検索しましたが、見つけたすべての解決策がうまくいきませんでした。私が見つけたのは、バックグラウンドでアプリが何らかの形でサウンドを再生しようとしているために、この問題が発生することです。

コンソールに表示されます(これは、他の人が見つけたのと同じエラーです):

sgx エラー (バックグラウンド GPU アクセスは許可されていません):

もう1つのことは、シミュレーターでアプリを実行したり、慎重にデバッグしながらデバイスで実行したりしても(アプリの実行中にXCodeで1行ずつ実行すると)、これは起こりません。

0 投票する
2 に答える
123 参照

iphone - アプリのビルド時にios4muititaskをサポートする必要がある場合はどうすればよいですか?

私はアプリを開発しています。インターネットから場所のリストを取得し、テーブルリストの1つのアイテムをクリックするとマップアプリをトリガーします。

マップアプリから戻ろうとすると(ホームキーをダブルタップまたは1回タップするだけ)、アプリが最初の画面に再起動することがわかりました。

私はios4にマルチタスク機能があることを知っています。私のアプリはSDK3で構築されており、新しいipod4でテストします。彼が戻ってきたときに彼が残した最後の画面をユーザーに見せたい場合はどうすればよいですか。