Android 流媒体播放器开发实现
2010-05-26 15:38:00 来源:WEB开发网今天看到很多人都在询问如何写网络流媒体播放器?是否需要两个播放器轮流交替?因为Android没有提供像J2me那样的流创建的形式,总之还是不太好写,最近也在研究android流媒体播放,这里提供一个很早之前写的demo,以供大家相互学习和参考。
/**
* Android提供的接口仍然是不能直接通过流创建Player,但是Android提供了很全面的文件系统接口,现在用一种新的方法来解决:
* <1>,把下载下来的数据先写到临时的文件中
* <2>,用临时文件创建Player
* todo:
* <1>,清理没有用的临时文件。
* <2>,暂停逻辑的优化。---抛出异常。。。。
* <3>,分段下载的逻辑处理,这和<2>有关系。
* <4>,整体优化
*
* @author shenrenkui
*
*/
public class AudioPlayer implements OnErrorListener, OnBufferingUpdateListener,
MediaPlayer.OnCompletionListener {
private static final String TAG = "AudioPlayer";
private MediaPlayer mPlayer;
private String current;
private static final int MIN_BUFF = 100 * 1024;
private int totalKbRead = 0;
private Handler handler = new Handler();
private File DLTempFile;
private File BUFFTempFile;
private final String TEMP_DOWNLOAD_FILE_NAME = "tempMediaData";
private final String TEMP_BUFF_FILE_NAME = "tempBufferData";
private final String FILE_POSTFIX = ".dat";
private final int PER_READ = 1024;
private boolean pause;
private boolean stop;
private final int UNKNOWN_LENGTH = -1;
private Handler mHandler = null;
public void setHandler(Handler handler) {
mHandler = handler;
}
public void play(final String path) {
downloadOver = false;
totalKbRead = 0;
try {
Log.v(TAG, "playing: " + path);
if (path.equals(current) && mPlayer != null) {
更多精彩
赞助商链接