WEB开发网
开发学院手机开发Android 开发 Android 流媒体播放器开发实现 阅读

Android 流媒体播放器开发实现

 2010-05-26 15:38:00 来源:WEB开发网   
核心提示:今天看到很多人都在询问如何写网络流媒体播放器?是否需要两个播放器轮流交替?因为Android没有提供像J2me那样的流创建的形式,总之还是不太好写,Android 流媒体播放器开发实现,最近也在研究android流媒体播放,这里提供一个很早之前写的demo,以供大家相互学习和参考,,* <3>,分段下载的逻

今天看到很多人都在询问如何写网络流媒体播放器?是否需要两个播放器轮流交替?因为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) {

1 2 3 4 5  下一页

Tags:Android 流媒体 播放器

编辑录入:coldstar [复制链接] [打 印]
赞助商链接