我正在开发一个音乐下载应用程序,它基本上可以跨不同的种子平台进行网络抓取并获取种子。我想在下载音乐种子文件时播放它们。我有一个服务,基本上负责完成所有这些工作。我设置了一个缓冲区,等待 torrent 文件至少下载 25%,然后我使用MediaPlayer
该类开始播放文件。音乐开始播放正常,但过了一会儿就停止了,好像不能播放超过 25%。我尝试使用 Android 的MediaPlayer
类和FFmpegMediaPlayer库。我尝试使用几个配置:
MediaPlayer mediaPlayer = new MediaPlayer();
FileInputStream fis = null;
try {
fis = new FileInputStream(mCurrentTrack);
mediaPlayer.setDataSource(fis.getFD());
mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING);
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
mediaPlayer.prepareAsync();
} catch (Exception e) {
Log.w(APP_TAG, String.format("Something went wrong while trying to play the torrent stream: " + e.toString()));
}
mCurrentTrack
是我下载到外部存储的下载文件夹中的 mp3 文件的路径。
我尝试使用AudioManager.STREAM_MUSIC
. 我尝试使用 sync prepare() 方法,然后调用 start() 方法。new File(mCurrentTrack)
在开始播放之前,我尝试使用 a 打开文件并将其设置为可读可写。我尝试了很多组合,但总是一样,音乐播放几秒钟然后停止。当我检查外部存储时,文件最终可以毫无问题地完全下载。
我用来下载种子文件的库是这个TorrentStream-Android
任何有关如何在动态下载此文件时播放此文件的提示或想法,将不胜感激。