当前位置: 首页 > 知识库问答 >
问题:

将音频文件保存到android中的特定文件夹中

劳彦
2023-03-14
public class FragmentRecording extends Fragment {
private MediaRecorder recorder;
private String OUTPUT_FILE;
FloatingActionButton stop_fab;
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
    View view=inflater.inflate(R.layout.fragment_recording, container,false);
    stop_fab=(FloatingActionButton)view.findViewById(R.id.stop_fab_xml);
    //SALIDA DEL ARCHIVO
    OUTPUT_FILE=Environment.getExternalStorageDirectory()+"/VoiceRecorder.3gpp";

    //GENERAMOS UN METODO PARA SABER LIBERAR EL MICROFONO
    LiberarMicro();
    //Crea el archivo
    File outfile=new File(OUTPUT_FILE);
    //Si existe lo borra
    if(outfile.exists()){
        outfile.delete();
    }
    //Empieza Proceso de Grabacion
    try {
        StartRecord();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    stop_fab.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            StopRecord();
        }

    });


    return view;}



protected void StopRecord() {
    // TODO Auto-generated method stub
    if(recorder!=null){
        recorder.stop();
    }
}



private void StartRecord() throws IllegalStateException, IOException {
    // TODO Auto-generated method stub
    recorder=new MediaRecorder();
    recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setOutputFile(OUTPUT_FILE);

    recorder.prepare();

    recorder.start();
}

private void LiberarMicro() {
    // TODO Auto-generated method stub
        if(recorder!=null){
            recorder.release();
        }

}}

共有1个答案

骆昊阳
2023-03-14
File f = new File(Environment.getExternalStorageDirectory() + "/somedir");
if(f.isDirectory()) {
        //Write code for the folder exist condition

}else{

        // create a File object for the parent directory
        File wallpaperDirectory = new File("/sdcard/Wallpaper/");
        // have the object build the directory structure, if needed.
        wallpaperDirectory.mkdirs();
       // create a File object for the output file
       File outputFile = new File(wallpaperDirectory, filename);
       // now attach the OutputStream to the file object, instead of a String representation
       FileOutputStream fos = new FileOutputStream(outputFile);

}

上面的代码将检查wheather文件夹是否存在。如果没有,创建一个文件夹,并将文件保存到该文件夹。

您需要在清单中提供以下权限

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

如果你有困惑就告诉我。如果我帮忙,请投票:)快乐的编码

 类似资料:
  • 但我想创建一个文件夹与应用程序的名称,并能够保存录制的音频到该文件夹。有人能告诉我怎么做吗?我成功地创建了文件夹,但我不知道如何将mediaFile移动到其中:

  • 在shell脚本中,我想从某个URL下载一个文件,并将其保存到特定的文件夹中。使用命令将文件下载到特定文件夹时应使用的特定CLI标志是什么,或者如何获得该结果?

  • 我正在尝试从麦克风录制,添加一些效果,并将其保存到文件中 我已经从AndroidNDK中包含的本地音频示例开始。我设法添加了一些混响并播放它,但我没有找到任何关于如何完成此操作的示例或帮助。 任何帮助都是受欢迎的。

  • 我的应用程序将一些文件保存到设备上的数据/数据文件夹中。保存远程文件后,我会处理这些文件,并将它们复制到其他文件夹中。在之前测试过的所有设备上,All都能正常工作,但在galaxy s3上会生成空指针异常。似乎我不被允许在那个文件夹上写或处理文件!但只有新的星系s3!我也无法使用EclipseDDMS文件浏览器在数据文件夹中找到任何文件,而在模拟器(相同的android版本)中,我可以正确查看所有

  • 问题内容: 我正在尝试使用HttpClient下载PDF文件。我可以获取文件,但是我不确定如何将字节转换为PDF并将其存储在系统中的某个位置 我有以下代码,如何将其存储为PDF? 问题答案: 编辑: 您还可以使用BufferedOutputStream和BufferedInputStream来加快下载速度: