首页 > 解决方案 > #读取音频格式并产生声音

问题描述

我正在开发一个 android 媒体播放器,我需要使用 WAV 和 MP3 等音频格式。而且我需要在将文件读取为字节后产生声音。任何人都知道如何做到这一点或可以提供帮助!
注意:必须不使用 MediaPlayer 类或其他准备好的类,我需要将文件作为字节读取并产生声音。

标签: android

解决方案


为什么不能使用 MediaPlayer?

也许尝试exoplayer。
https://developer.android.com/guide/topics/media/exoplayer
https://github.com/google/ExoPlayer

ExoPlayer的示例代码- 在 SD 卡中播放本地 mp4 文件

private void prepareExoPlayerFromFileUri(Uri uri){
    exoPlayer = ExoPlayerFactory.newSimpleInstance(this, new DefaultTrackSelector(null), new DefaultLoadControl());
    exoPlayer.addListener(eventListener);

    DataSpec dataSpec = new DataSpec(uri);
    final FileDataSource fileDataSource = new FileDataSource();
    try {
        fileDataSource.open(dataSpec);
    } catch (FileDataSource.FileDataSourceException e) {
        e.printStackTrace();
    }

    DataSource.Factory factory = new DataSource.Factory() {
        @Override
        public DataSource createDataSource() {
            return fileDataSource;
        }
    };
    MediaSource audioSource = new ExtractorMediaSource(fileDataSource.getUri(),
            factory, new DefaultExtractorsFactory(), null, null);

    exoPlayer.prepare(audioSource);
    exoPlayer.setPlayWhenReady(true);
}

推荐阅读