【问题标题】:How to record audio on android wear如何在 Android Wear 上录制音频
【发布时间】:2015-04-03 23:26:13
【问题描述】:

有什么方法可以在 android wear 上录制音频?我使用了 AudioRecord API,它使应用程序崩溃。

我做错了吗?

        short[] audioData = new short[minBufferSize];

        AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
                11025,
                AudioFormat.CHANNEL_CONFIGURATION_MONO,
                AudioFormat.ENCODING_PCM_16BIT,
                minBufferSize);

        audioRecord.startRecording();

        while(recording){
            int numberOfShort = audioRecord.read(audioData, 0, minBufferSize);
            for(int i = 0; i < numberOfShort; i++){
                dataOutputStream.writeShort(audioData[i]);
            }
        }

        audioRecord.stop();

【问题讨论】:

  • "它使应用程序崩溃" -- 使用 LogCat 检查与崩溃相关的 Java 堆栈跟踪:stackoverflow.com/questions/23353173/…
  • 不幸的是 LogCat 没有显示任何错误,应用程序只是崩溃而没有任何错误消息。我不确定android wear是否支持录音机,我想知道是否有人让它工作。
  • 几个月前试过了,我遇到了编码问题,导致媒体记录器无法启动。从那以后再也没有尝试过,但是如果您尝试摆脱编码,它可能会起作用,正如当时有人建议我的那样。
  • 你能分享你的完整代码吗?您是否使用 createNewFile() 方法创建新文件?还有如何使用 getExternalStorageDirectory 解决 EACCES 问题?谢谢。

标签: java android wear-os android-audiorecord


【解决方案1】:

AudioRecord 受支持并可在 Android Wear 上运行。如果您在模拟器上进行测试,它可能不支持您提供的采样率 11025,请尝试另一个,例如 8000。

AudioRecord 构建完成后,应先检查状态,确认初始化成功后再尝试录制。

audioRecord.getState() == AudioRecord.STATE_INITIALIZED

还要确保您在清单中拥有正确的权限。您至少需要 android.permission.RECORD_AUDIO 以及您正在写入文件的位置的任何权限。

【讨论】:

  • 我忘记在清单中添加音频权限。现在可以了,谢谢。
  • 如何访问录制的音频?
猜你喜欢
  • 1970-01-01
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多