首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android录音器启动失败?但创建的文件大小为0

android录音器启动失败?但创建的文件大小为0
EN

Stack Overflow用户
提问于 2012-09-05 15:08:05
回答 2查看 1.5K关注 0票数 1
代码语言:javascript
复制
recorder = new MediaRecorder();

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC );
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);



recorder.setMaxDuration(10000 * 10); 
recorder.setOnInfoListener(null); 
recorder.setOutputFile(s+"/sh1.3gp");
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);


    try {  
        recorder.setAudioSamplingRate(TRIM_MEMORY_BACKGROUND);
        recorder.setAudioChannels(1);
        recorder.prepare(); 
        recorder.start();
        }  
    catch (Exception e2) {
            tv.setText("OHH"+e2.toString());

            } 

上面是播放录音机的代码。当我启动录像机时,它显示start failed:

但是在android SD卡中创建了sh1.3gp ( 3gp文件)文件。。请回复我解决方案

EN

回答 2

Stack Overflow用户

发布于 2012-09-05 15:14:19

你是在模拟器上运行这段代码吗?如果是这样,您必须尝试在真实设备上运行,因为在不更改其设置的情况下,您无法使用模拟器保存音频。更简单的方法是在真实的(硬件)设备上测试。

票数 0
EN

Stack Overflow用户

发布于 2012-09-05 15:34:53

尝试使用此代码录制音频。创建记录器的对象。和

文件audioFile=null;

代码语言:javascript
复制
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卡中。

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12276218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档