【问题标题】:Record audio using recorder and then upload that on server android使用录音机录制音频,然后将其上传到服务器 android
【发布时间】:2017-08-05 19:28:34
【问题描述】:

我正在尝试在我的应用中录制音频 按下按钮

    Intent intent = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); 
    startActivityForResult(intent, ACTIVITY_RECORD_SOUND);

但它给了我错误

    android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.provider.MediaStore.RECORD_SOUND }

但是当我从播放商店安装任何录音机时,此错误消失了,但在录制音频后它不会返回任何内容。它停留在记录器窗口上。

还有我必须写什么来获取该音频文件并将其上传到服务器

        @Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

}

【问题讨论】:

    标签: android audio server audio-recording onactivityresult


    【解决方案1】:

    您可以使用以下代码。

    MediaRecorder recorder = new MediaRecorder();
            recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
            recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
            recorder.setOutputFile(path);
    //            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);         for mp3 audio
            recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.prepare();
    recorder.start();
    

    路径可以是文件存在的任何地方。例如

    path = Environment.getExternalStorageDirectory() + "/Android/data/" + context.getApplicationContext().getPackageName() + "/files/" + "myrecording.m4a";
    

    【讨论】:

      【解决方案2】:

      但它给了我错误

      Android 设备不需要有响应 Intent 操作的 Activity。

      当我从 Play 商店安装任何录音机时,此错误消失了,但在录制音频后它不会返回任何内容。它停留在记录器窗口上。

      显然,该应用程序存在错误。

      还有我必须写什么来获取该音频文件并将其上传到服务器

      引用the documentation for RECORD_SOUND_ACTION,输出是“录制成功时存储在媒体库中的录制声音的URI”。 IOW,在Intent 上调用getData() 发送到onActivityResult(),这应该是指向录制音频的Uri。请注意,这不一定代表文件系统上的文件,更不用说您可以访问的文件了。

      【讨论】:

        猜你喜欢
        • 2018-12-21
        • 1970-01-01
        • 2015-11-25
        • 2017-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多