android 框架提供的录音给java端封装的很简单,几句话就可以了.1.MediaRecorder mRecorder = new MediaRecorder();
2.mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
3.mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
4.mRecorder.setOutputFile(mFileName);
5.mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
6.    mRecorder.prepare();
} catch (IOException e) {
7.    Log.w("Log", "prepare 失败  " + e.toString());
}
mRecorder.start();
第4句参数是设置一个录音结果数据流储存的地址(参数是一个String类型的文件夹地址)...so就需要一个文件的绝对路径,android中只有sdcard里面的文件才是有权限可以操作的...但是如果当前没有sdcard那是不是当前就无法录音了?我不需要把该段录音文件储存起来,我只需要得到录音文件流就可以了... 有人遇到过类似的问题或者解决过类似的问题吗? 求助了..

解决方案 »

  1.   

    搞定 搞定...
    在系统里面创建文件,并拿到文件对象(绝对路径)this.openFileOutput("1.txt", MODE_WORLD_WRITEABLE | MODE_WORLD_READABLE);
    这句话用户创建文件(注意后面权限是可读可写)File file = this.getFilesDir();
    file = new File(file, "1.txt");
    这两句话用于拿到创建的文件对象接下来的写入,读取都是完全ok的...... 此功能可以用于,后台拍照与录音等功能. 因为是后台就不需要保存到起来,当没有sdcard的时候 就很恼火..这样一来就ok了..储存到系统内存 然后上传服务器 再clear.. 声明:拍照是直接返回数据流,没有sdcard也不影响..但是录音是需要一个文件路径...没有sdcard就比较恼火了...结贴...
      

  2.   

    按照Java的技术路线,文件,还有输出,其实都是流而已。如果可以取得一个内存buffer的OutputStream,指向这里,那么,是可以的。我是新手,不知道具体有哪些API。
      

  3.   


    关键是android系统内存创建文件是需要权限的...