【问题标题】:I can't save audio file after recordings in Android application development在 Android 应用程序开发中录制后无法保存音频文件
【发布时间】:2016-09-29 21:33:09
【问题描述】:

在使用录音机后,我发现文件没有保存..但是代码是正确的..错误找不到目录..但是我创建了一个脚本来创建一个新目录,如果它不可用..但它不起作用..我在这里包含了代码..有人应该帮忙...

  private String getFilename() {
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath, AUDIO_RECORDER_FOLDER);
    if (!file.exists()) {
        file.mkdirs();
    }

    return (file.getAbsolutePath() + "/" + System.currentTimeMillis() + AUDIO_RECORDER_FILE_EXT_WAV);
}

private String getTempFilename() {
    String filepath = Environment.getExternalStorageDirectory().getPath();
    File file = new File(filepath, AUDIO_RECORDER_FOLDER);
    if (!file.exists()) {
        file.mkdirs();
    }

    File tempFile = new File(filepath, AUDIO_RECORDER_TEMP_FILE);
    if (tempFile.exists())
        tempFile.delete();
    return (file.getAbsolutePath() + "/" + AUDIO_RECORDER_TEMP_FILE);
}

【问题讨论】:

    标签: java android android-fragments android-studio android-activity


    【解决方案1】:

    您是否在应用程序中添加了使用外部存储的用户权限 在 AndroidManifest 文件中是这样完成的

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

    【讨论】:

    • 我已添加权限
    【解决方案2】:

    我就是这样做的,我为我工作

    //使用权限 android:name="android.permission.RECORD_AUDIO"

    //使用权限 android:name="android.permission.WRITE_EXTERNAL_STORAGE"

    private MediaRecorder mr;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mr = new MediaRecorder();
    
        mr.setAudioSource(MediaRecorder.AudioSource.MIC);
        mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
        mr.setOutputFile("/sdcard/_name.3gp");
        mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    
        try{
            mr.prepare();
            mr.start();
        }
        catch (Exception ex){
    
        }
    }
    
    public void stopAndSave(View v){
    
        try{
            mr.stop();
            mr.release();
    
        }
        catch (Exception ex){
    
        }
    }
    

    【讨论】:

    • 还没有。。我的完整代码与 urs 不同。我想稍微修改一下。但是你能把你的完整代码贴出来让我看看和理解吗?
    • 或者发送到我的邮箱? Kingo4luv@gmail.com
    • 谢谢..我已经上了课..我也发了我的...你可以帮我检查一下我的..我现在正在做一个项目
    • 请查收邮件
    • yaap yaap,我明白了。你写得很好,我喜欢它,当我试图打开我的 android studio 时出现以下异常,我会在我解决这个问题后回复你。/programming/android-studio/bin/../jre/bin /java:9:./programming/android-studio/bin/../jre/bin/java:语法错误:未终止的引号字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    相关资源
    最近更新 更多