0

オーディオを録音して保存する簡単なアクティビティを作成しています。できればアプリケーション内のフォルダーに保存しますが、簡単にするために SD カードに保存します。問題を引き起こしているコード行は

String path = Environment.getExternalStorageDirectory().toString() + "/" + "tempAppFiles/";
String filename = "test"+".mp4";
recorder.setOutputFile(path + filename);

ここで、recorder は MediaRecorder のインスタンスです。

アプリケーションを実行すると、次のようなアクセス許可エラーが表示されます

07-31 15:51:51.810: W/System.err(13670): java.io.FileNotFoundException: /mnt/sdcard/tempAppFiles/test.mp4 (Permission denied)

この問題を調べたところ、マニフェストにいくつかの許可タグを追加する必要があることがわかり、追加しました

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

私のマニフェストに。

私はまだ同じアクセス許可の問題を抱えていますが、同様の問題を抱えている人を見つけることができません。

何か案は?

4

2 に答える 2

0

tempAppFiles はうまく設定できません。書いているアプリのパッケージ名の下にあるディレクトリに書き込む必要があるようです...

于 2012-08-01T01:00:13.483 に答える
0

うーん...アクセス許可は正しいようです。おそらく、間違った場所に配置した可能性があります。ルート note の子である必要があります。

次に、チェックしてファイルを書き込めるかどうかを確認できます

boolean canIWrite = path.canWrite();

FileNotFound 例外も発生するため、試すことができます...

String path = Environment.getExternalStorageDirectory().getAbsolutePath();

...それ以外の...

String path = Environment.getExternalStorageDirectory().toString();

それがまったく役に立たない場合は、オーディオをキャプチャする公式の例がまだあります-コードを次と比較する必要があります: http://developer.android.com/guide/topics/media/audio-capture.html

于 2012-07-31T23:53:55.573 に答える