私は音楽のダウンロードアプリケーションを開発しています。これは、基本的に異なるトレントプラットフォームでウェブスクラップしてトレントを手に入れます。私はそれらをダウンロードしている間にいくつかの音楽トレントファイルを再生したい。私は基本的にこのすべてをやっているサービスを持っています。私はトレントファイルまで待つバッファを設定します。少なくとも25%ダウンロードした後、ファイルを再生するためにMediaPlayer
クラスを使用します。音楽は正常に再生されますが、あたかも25%以上再生できないかのようにしばらくして停止します。 AndroidのMediaPlayer
クラスとFFmpegMediaPlayerライブラリの両方を使用してみました。私はいくつかのconfigsを使用してみました:音楽ファイルをダウンロード中に再生する
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)
でファイルを開き、再生可能で書き込み可能に設定します。私は多くの組み合わせを試みましたが、いつも同じです。音楽は数秒間再生されてから停止します。外部記憶装置をチェックすると、ファイルは問題なく完全にダウンロードされます。
私はトレントファイルをダウンロードするために使用しているライブラリーは、そのは、ハエでダウンロードしながら、高く評価されるだろう、このファイルを再生する方法については、この1つのTorrentStream-Android
任意のヒントやアイデアです。