0

バックグラウンドで位置情報サービスを使用するアプリケーションがあります。正常に動作します。しかし、私がやりたいことは、ある時点で、アプリケーションがバックグラウンドにある間にいくつかのオーディオ レベルをチェックすることです。何らかの理由で機能していないようです。フォアグラウンドで実行している場合、関数は正常に動作しますが、バックグラウンドで実行している場合、オーディオ レコーダーの平均およびピーク入力は常に -120 です。

これは私がトリックを行うために使用するものです(明らかにうまくいかないようです..)

            ....
            [recorder record];
            if (levelTimer == nil) {
                    bgTask = 0;
                    app = [UIApplication sharedApplication];
                    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
                        [app endBackgroundTask:bgTask];
                    }];
                levelTimer = [NSTimer scheduledTimerWithTimeInterval: 0.02 target: self selector: @selector(levelTimerCallback:) userInfo: nil repeats: YES];
            }
            ...

はい、levelTimerCallbackバックグラウンドであっても 0.02 秒ごとに呼び出されるので、正常にbeginBackgroundTaskWithExpirationHandler動作すると思います。

何か考えやヒントはありますか?

4

3 に答える 3

3

現在、iOS デバイスでバックグラウンドで録音する唯一のサポートされている方法は、アプリの plist に UIBackgroundModes キーのオーディオを含め、録音用の適切なオーディオ セッションを有効にし、アプリがアプリケーションに入る前にオーディオの録音 (または再生) を開始することです。バックグラウンド。

アプリがオーディオ キューまたは RemoteIO Audio Unit API を使用して録音する場合、バッファ コールバックは、目的の時間まですべてのオーディオ バッファを破棄し、必要な時間の PCM サンプルによって表されるエネルギーを計算できます。必要です。

于 2012-09-22T16:02:11.187 に答える
-1

私が知っている、バックグラウンドレコーディングを備えたアプリがあります。Beatmaker2。Beatmaker2のデバイスの設定で、バックグラウンドで実行をオンにする必要があります。Beatmakerで、オーディオトラックを作成し、録音を開始します。デバイスのホームボタンを使用してアプリを終了しますが、まだ録音中です。さまざまなインターフェースでクリエイティブになることもできます。これは、iPhone4のラインをBeatmaker2のオーディオトラックにフィードするために行います。フォアグラウンドで再生されているものすべてのオーディオを録音できます。(YouTubeビデオはiTunesライブラリから音楽をアプリします。録音した後もウェーブを編集できます。

于 2013-01-23T20:49:01.757 に答える
-1

私はiPhoneがバックグラウンドでの録音を許可するとは思わない。アプリがバックグラウンドに移行するときに許可されるサービスはごくわずかです。論理的には、アプリが長時間バックグラウンドにとどまっている場合、これらのリソースを管理する時間とメモリがない限り、オーディオを保存するために多くのバッテリーとバッファーを消費します。これは、アプリをAppStoreに送信するときにも問題を引き起こします。

バックグラウンドで何を実行できるかを知るには、このリンクを参照できますが。これが、ある意味で物事をクリアするのに役立つことを願っています。

iPhone:バックグラウンドでサービスを実行している

幸運を!!!

于 2012-09-21T17:39:02.203 に答える