Android #阅读音频格式并产生声音

Android #阅读音频格式并产生声音,android,Android,我正在开发一款android媒体播放器,需要使用WAV和MP3等音频格式。我需要在把文件读成字节后产生声音。任何人都知道怎么做,或者可以帮忙 注意:不能使用MediaPlayer类或其他就绪类,我需要以字节形式读取文件并发出声音。为什么不能使用MediaPlayer 也许可以试试exoplayer。 示例代码来自 谢谢你的回答,这个程序和我的学习有关,所以我需要建立我自己的媒体播放器,支持一些格式,如wav,mp3和avi。所以我不能使用像媒体播放器类或其他现成的类。我必须以字节的形式读取每

我正在开发一款android媒体播放器,需要使用WAV和MP3等音频格式。我需要在把文件读成字节后产生声音。任何人都知道怎么做,或者可以帮忙

注意:不能使用MediaPlayer类或其他就绪类,我需要以字节形式读取文件并发出声音。

为什么不能使用MediaPlayer

也许可以试试exoplayer。

示例代码来自


谢谢你的回答,这个程序和我的学习有关,所以我需要建立我自己的媒体播放器,支持一些格式,如wav,mp3和avi。所以我不能使用像媒体播放器类或其他现成的类。我必须以字节的形式读取每种格式并产生声音。
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);
}