3

カメラ ハードウェアとやり取りしてビデオを録画する Android アプリを開発しようとしています。ビデオを 10 秒間記録し、保存してサーバーに送信し (バックグラウンド スレッドで)、次の 10 秒間別のビデオを開始します。ユーザーがアプリの「停止」ボタンを押さない限り、無期限にビデオを撮影することが期待されます。ユーザーがホームボタンを押しても、ビデオ録画はバックグラウンドで続行する必要があります

現在、ユーザーがホーム ボタンを押すと、カメラ プレビューで「Java: IO Exception: Invalid preview surface」という例外が生成されます。

これが私が使用したコードスニペットです

 recorder.setOutputFile(outputFile+"_"+number+".mp4");
        recorder.setPreviewDisplay( holder.getSurface());
        if (recorder != null) {
            try {
                recorder.prepare();
                recorder.start();
            } catch (IllegalStateException e) {
                Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();

            } catch (IOException e) {
                Toast.makeText(context, e.toString(), Toast.LENGTH_LONG).show();
            }
        }

ユーザーがホームキーを押しても、バックグラウンドで録画を続行できますか?

4

1 に答える 1

0

この動作を文書化するリンクはありませんが、それは不可能だと思います。サービスを使用しても、「表面を失った」という例外がスローされ続けます。

この他の質問も確認できます。

于 2013-02-18T19:58:02.827 に答える