【问题标题】:Recording Audio on Google Glass在谷歌眼镜上录制音频
【发布时间】:2014-12-21 05:39:55
【问题描述】:

我正在尝试使用 glass gdk 录制音频,但发现它非常有问题。

我正在使用媒体记录器并拥有所有正确的权限,但我不断收到媒体记录器 100 错误。 我的代码如下所示:

mMediaRecorder = new MediaRecorder();
mMediaRecorder.setOnErrorListener(new MediaRecorder.OnErrorListener() {
            public void onError(MediaRecorder mediarecorder1, int k, int i1) {
                Log.e(TAG, String.format("Media Recorder error: k=%d, i1=%d", k, i1));
            }
});
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setOutputFile(mAudioFile.getAbsolutePath());

mMediaRecorder.prepare();
mMediaRecorder.start();

这与 Google Glass 有关,因为我在 Android 手机上运行了完全相同的代码,并且它正确录制了音频。 我可以找到很少的关于使用媒体记录器仅在玻璃上录制音频的资源,我看到的大多数帖子都是人们录制视频和音频,而我对视频不感兴趣。

任何帮助解决我如何在 Google Glass 上录制音频将不胜感激!

【问题讨论】:

  • 我已经看到这个问题被问了很多次,但还没有像样的答案。

标签: android google-glass google-gdk


【解决方案1】:
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

我刚刚在针对 XE22 Glass 上的最新 GDK 的沉浸式活动中对此进行了测试。我在您的原始代码中看到的是一堆本机 logcat 消息,提示编解码器问题。这种编解码器和容器的组合确实有效,我能够检索音频文件并在我的笔记本上播放它。

【讨论】:

  • 我注意到我可以让它在 AAC 中录制,但是我正在尝试在 AMR 中录制。奇怪的是:code.google.com/p/google-glass-api/issues/detail?id=317 一位开发人员发帖称 AMR 是默认编码器。我正在努力解决的是为什么这不起作用。
  • 可能现在他们只支持玻璃上的AAC,在这种情况下你的答案是正确的。我很想知道是否有人知道如何在 AMR 中记录
  • 我明白了,虽然您的问题是“如何在 Glass 上录制音频”,但不一定只采用 AMR 格式。尽管按照规范,AMR 应该可以在 Glass 上运行,但即使在其他 Android 设备上也很少能支持。以this post 为例。 Glass 上缺少 AMR 编码要么是错误,要么是未记录的限制,imo。
猜你喜欢
  • 1970-01-01
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多