如何知道Android中录音的长度

Posted

技术标签:

【中文标题】如何知道Android中录音的长度【英文标题】:How to know the length of an audio recording in Android 【发布时间】:2011-05-01 15:58:31 【问题描述】:

我正在使用以下代码来录制音频:

  Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
  intent.setType("audio/*");
  startActivityForResult(Intent.createChooser(intent, "Select audio source"), CardList.ACTIVITY_RECDAUDIO);

当结果返回时,我会执行以下操作:

  Uri u = intent.getData();
  String audioUri = u.getPath();
  InputStream in = new BufferedInputStream(this.getContentResolver().openInputStream(u));

我想知道录音的时长(以秒为单位)。是否可以以某种方式查询这个?如果一切都失败了,我可以以编程方式播放剪辑并计时,但如果可能的话,我更喜欢更直接的方法。谢谢!

【问题讨论】:

【参考方案1】:

我不知道这对你来说是否足够快。但如果你不知道 - 你不必实际玩它。创建MediaPlayer实例并设置文件路径和调用getDuration()就足够了。

MediaPlayer mp = MediaPlayer.create(yourActivity, Uri.parse(path));
int duration = mp.getDuration();

【讨论】:

【参考方案2】:

我通过使用我的输入流来做到这一点:InputStream 上的 is.available() 给了我长度。

【讨论】:

以上是关于如何知道Android中录音的长度的主要内容,如果未能解决你的问题,请参考以下文章

使用 ALSA/CAF 进行 Android 通话录音

Android上的录音播放动画

Android:录音和保存音频

Android 开发 如何实现高质量的录音

如何在 Android 模拟器中启用录音?

Android,如何初始化录音机?