4

私はAndroid開発に不慣れで、次の質問/問題があります。

MediaRecorderクラスをいじって、マイクからの音声だけを録音しています。私は公式サイトに示されている手順に従っています:http://developer.android.com/reference/android/media/MediaRecorder.html

したがって、記録を開始するためにMediaRecorderオブジェクトを初期化して構成するメソッドがあります。ここにコードがあります:


        //initializes audio recorder
        MediaRecorder mrecorder = new MediaRecorder();
        //configure the input sources
        mrecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        //set the output format
        mrecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        //set the audio encoding
        mrecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
        //specify the output file
        mrecorder.setOutputFile("/sdcard/test.3gp");
        //prepare for recording
        try {
            mrecorder.prepare();
        } catch (IllegalStateException e) { 
            e.printStackTrace();
            Log.d("Syso". e.toString());
        } catch (IOException e) { 
            e.printStackTrace();
            Log.d("Syso". e.toString());
        }

logcatのおかげで、シミュレーターでこのコードを実行すると、メソッドprepare()が呼び出されたときに例外が発生することがわかります。


java.io.FileNotFoundException: /sdcard/test.3gp (Permission denied)

そして、なぜこれが起こっているのか私にはわかりません。例外のメッセージのため、xmlに次の行を追加することにより、マニフェストでストレージにアクセスするためのアクセス許可を付与しました。


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

しかし、これは何も修正せず、私はいつも同じ例外を受け取ります。SDカードはエミュレーターに従ってマウントされているので、私にはわかりません。

4

1 に答える 1

8

AndroidManifest.xmlにWRITE_EXTERNAL_STORAGE権限を追加します。

于 2010-06-04T15:36:31.470 に答える