【发布时间】:2018-05-08 06:17:56
【问题描述】:
我正在开发一个 android 媒体播放器,我需要使用 WAV 和 MP3 等音频格式。而且我需要在将文件读取为字节后产生声音。任何人都知道如何做到这一点或可以提供帮助!
注意:必须不使用 MediaPlayer 类或其他准备好的类,我需要将文件作为字节读取并产生声音。
【问题讨论】:
标签: android
我正在开发一个 android 媒体播放器,我需要使用 WAV 和 MP3 等音频格式。而且我需要在将文件读取为字节后产生声音。任何人都知道如何做到这一点或可以提供帮助!
注意:必须不使用 MediaPlayer 类或其他准备好的类,我需要将文件作为字节读取并产生声音。
【问题讨论】:
标签: android
为什么不能使用 MediaPlayer?
也许试试 exoplayer。
https://developer.android.com/guide/topics/media/exoplayer
https://github.com/google/ExoPlayer
来自ExoPlayer - play local mp4 file in SD card的示例代码
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);
}
【讨论】: