0

私のプロジェクト開発プラットフォームは google API7 です。2.2 以下のバージョンのデバイスを実行できますが、上記のバージョン 2.3 にインストールすると、SD カードにファイルを保存できません。

これは私のコードです

class ButtonListener implements OnClickListener
{
    public void onClick(View v)
    {
        if (v == startButton) 
        {
        setTitle("Start Recording and transmitting the file");  
        bar.setMax(second);
        updateBarHandler.post(updateThread);
        startButton.setVisibility(View.GONE);
        exitButton.setVisibility(View.GONE);
        stopButton.setVisibility(View.GONE);


        }

        if (v == stopButton)                
        {
            setTitle("Stop");
            handler.removeCallbacks(updateThread);  
            recorderInstance.setRecording(false);
            recorderInstance = null;
            startButton.setVisibility(View.VISIBLE);
            exitButton.setVisibility(View.VISIBLE);
        }

        if (v == exitButton) 
        {
            Intent intent = new Intent();
            intent.setClass(MyRecorder.this, User.class);
            startActivity(intent);
            MyRecorder.this.finish();
        }
    }
}
4

1 に答える 1

0

このコードを試して、オーディオを録音してください。

File sampleDir = Environment.getExternalStorageDirectory();
try {
audiofile = File.createTempFile("Recording", ".3gp", sampleDir);
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile(audiofile.getAbsolutePath());
    recorder.prepare();
recorder.start();  
    }
    catch (IOException e)
   {
   Log.e(TAG, "sdcard access error");
   return;
}

そして、次のコードを使用して、このオーディオを SD カードに保存できます。

audioFileName=input.getText().toString();
current = System.currentTimeMillis();
String artist = "" + getResources().getText(R.string.artistName);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, audiofile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, audioFileName);
values.put(MediaStore.Audio.Media.DATE_ADDED,  current );
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/3gpp");
values.put(MediaStore.Audio.Media.ARTIST, artist);              
values.put(MediaStore.Audio.Media.DATA, audiofile.getAbsolutePath());
ConntentResolver contentResolver = getContentResolver();
Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Uri newUri1 = contentResolver.insert(base, values);
于 2012-08-09T08:54:47.837 に答える