2

私はここで新しいです。私はAndroidエミュレーターを使用してビデオキャプチャアプリを作成しようとしましたが、あまり成功しませんでした。私が知っていて、インターネット(このサイトや他のサイト)のすべてのサンプルとコードを調べている限り、私はまだ一歩を逃しているに違いありません。

JonProによって作成されたこのスレッドの終わり近くでこのサンプルを使用してみました: http ://www.anddev.org/viewtopic.php?p = 24723#24723

自分で作成しようとしましたが、メディアレコーダーは準備段階で常に失敗し、「準備に失敗しました」という最も役に立たないメッセージが表示されます。何が欠けているのかわかりません。正しい権限を持っているようで、エミュレーターに従ってSDカードがマウントされています。2.1以外のAndroidSDKバージョンを使用する必要がありますか?

そのフォーラムのコードは機能すると主張していますが、次の行が欠落していることがわかりました。recorder.setCamera(camera);

しかし、ログが示すように、それでも喜びはありません:'prepare()が呼び出されたときに「camera(0x16b70)パラメーターの取得に失敗しました」が、プレビューは問題ないので意味がありませんが、記録はありません!ヘルプや提案をいただければ幸いです。

編集:これがSDKとエミュレーターで機能することを誰かが確認できますか?または、このバージョンでこれを機能させるために時間を無駄にしています。オープンソースなので、prepare関数のソースコードを入手できますか?

4

2 に答える 2

5

この問題の修正は、準備する前にmCameraDevice.unlock()を設定する必要があることです。これはmCameraDevice.setPreviewDisplay(mHolder);の後に設定することが重要です。

例:

/*--------------------------------------surfaceCreated---------------------------------------------*/
/**
 * Surface Created sets that the surface is created.
 */
 public void surfaceCreated(SurfaceHolder arg0) {
     // TODO Auto-generated method stu1595
        try {
            Log.d(LOG_TAG, "setPreviewDisplay enter");
            mCameraDevice.setPreviewDisplay(mHolder);
            Log.d(LOG_TAG, "setPreviewDisplay exit");
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        mCameraDevice.unlock();
        Log.d("*************", "***********unlock()****");
     isSurfaceCreated = true;


 }

BR PN

于 2010-05-21T06:50:18.057 に答える
0
recorder.setVideoSize(176, 144);
recorder.setVideoFrameRate(20);
recorder.setAudioChannels(1);
recorder.setPreviewDisplay( mHolder.getSurface());

これは私にとって助けになりました。デバッグ中にlogcatを調べます

于 2011-04-14T08:59:51.727 に答える