0

デフォルトのカメラ アプリを使用してビデオを録画しようとしています。カメラ アプリに渡されるインテントを次に示します。

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(intent, CAPTURE_VIDEO_REQUEST_CODE);

そしてこの下はonResultActivity()

if (resultCode == RESULT_OK) {
    String path=data.getData().getPath();
    File file=new File(path);
    boolean exists=file.exists();
    long idMedia = mApp.saveMedia(mFilePath, Type.VIDEO).getId();
}

したがって、返されるパスは「/external/video/media/15」のようなものです

最初の質問は、/external ディレクトリはどこですか? デバイスのファイル エクスプローラーを使用しても、adb シェル経由で見つけることができません。

2 番目の質問: ブール値の exists は false です。なんで?

3 番目の (そして最も重要な) 質問: SD カードの特定のディレクトリに記録されたビデオを移動するにはどうすればよいですか?

を使用してuriファイルを渡そうとしました

intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(videoFile));

しかし、録画ボタンを押すとカメラアプリが動かなくなり、データの意図はonResultActivity()「/external/....」ディレクトリを指しています。

前もって感謝します。

4

1 に答える 1

0

「/外部/ビデオ/メディア/15」

は絶対パスではなく URI です。contentproviders を使用して絶対パスを見つける必要があります。特定のパスに保存するには、使用する必要があります

.putExtra(MediaStore.EXTRA_OUTPUT,パス)

カメラの呼び出し中に意図的に

于 2013-01-21T12:08:08.017 に答える