【问题标题】:Android How to get Audio File durationAndroid 如何获取音频文件的持续时间
【发布时间】:2013-10-27 20:19:56
【问题描述】:

我制作了使用 AudioRecorder 类以 pcm 格式录制文件的应用程序。我列出了我的应用程序中的所有文件,我想从所有文件中获取持续时间,但我有问题。我试过了:

MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever();
   metaRetriever.setDataSource(filePath);

和

MediaPlayer mplayer =  new MediaPlayer();
mplayer.reset();
mplayer.setDataSource(URL);
mplayer.prepare();
Integer totalFileDuration = mplayer.getDuration();

我对这个解决方案只有错误。

【问题讨论】:

    标签: java android audio duration pcm


    【解决方案1】:

    来自 Android 开发文档:

    新建的建筑之间有一个微妙但重要的区别 MediaPlayer 对象和reset() 后的MediaPlayer 对象被调用。 调用方法是一个编程错误,例如 获取当前位置(),获取持续时间(),获取视频高度(), getVideoWidth(), setAudioStreamType(int), setLooping(boolean), setVolume(float, float), pause(), start(), stop(), seekTo(int), 对于这两种情况,prepare() 或 prepareAsync() 都处于空闲状态。如果有的话 这些方法中的一个在 MediaPlayer 对象被调用后立即调用 构造,用户提供的回调方法 OnErrorListener.onError() 不会被内部播放器调用 引擎和对象状态保持不变;但如果这些方法 在用户提供的回调方法 reset() 之后立即调用 OnErrorListener.onError() 将由内部播放器调用 引擎和对象将被转移到错误状态。

    由于您使用数据源的 URL,我会尝试 prepareAsync(),然后在 onPrepared() 中调用 getDuration()。

    【讨论】:

      猜你喜欢
      • 2014-02-08
      • 2020-06-02
      • 1970-01-01
      • 2013-03-01
      • 2015-10-13
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      相关资源
      最近更新 更多