2012-07-31 106 views
2

的MediaRecorder适用于Android的其它版本而不是在2.3.3:的Android MediaRecorder - 启动失败:-2147483648 2.3.3

try { 

    MediaRecorder mRecorder = new MediaRecorder(); 
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); 
    mRecorder.setOutputFile(path + "r_" + FileName); 

    int version = android.os.Build.VERSION.SDK_INT; 
    Log.d("MP3Downloader", "V: " + version); 

    if(version >= 8) { 
     mRecorder.setAudioEncodingBitRate(16); 
     mRecorder.setAudioSamplingRate(44100); 
     mRecorder.setAudioChannels(2); 
    } 

    mRecorder.prepare(); 
    mRecorder.start(); 
} catch (Exception e) { 
    Log.e("MP3Downloader", "MediaRecorder Failed: " + e.getMessage()); 
} 

我得到错误启动失败:-2147483648 2.3.3版本只要。我没有发现在其他地方解决这个问题。

我也试过:

try { 

    MediaRecorder mRecorder = new MediaRecorder(); 
    mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

    FileOutputStream fos = new FileOutputStream("r_" + FileName); 

    mRecorder.setOutputFile(fos.getFD()); 



    int version = android.os.Build.VERSION.SDK_INT; 
    Log.d("MP3Downloader", "V: " + version); 

    if(version >= 8) { 
     mRecorder.setAudioEncodingBitRate(16); 
     mRecorder.setAudioSamplingRate(44100); 
     mRecorder.setAudioChannels(1); 
    } 

    mRecorder.prepare(); 
    mRecorder.start(); 
} catch (Exception e) { 
    Log.e("MP3Downloader", "MediaRecorder Failed: " + e.getMessage()); 
} 

但是,我得到异常: “(只读文件系统)”

我有权限:

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

我认为这个问题来自于使用MediaRecorder对象的多个实例......这是一种多次调用的方法,每次它将mRecorder重新分配给MediaRecorder的新实例。我猜OS /垃圾收集器/看门狗正在照顾其他大多数Android版本的旧MediaRecorder对象,但2.3.3不喜欢我糟糕的编程习惯......我修复它重新使用MediaRecorder根据图http://developer.android.com/reference/android/media/MediaRecorder.html – 2012-07-31 04:02:16

+1

您的评论给了我希望再次..我有同样的问题,这是让我疯了!将试试看,如果它的作品肯定会做一些upvoting在这里和那里:)。顺便说一句android开发者。可以把他们的行为放在一起,并更好地记录这类事情,因为此刻这可不是什么荒谬的事情 – spirytus 2012-08-12 23:06:28

回答

0

改变您的输出格式3GPP。