android datagramsocket 缓存大小,Android接收UDP TS流实现边缓存边播放 – 小崔的博客 – 博客频道 – CSDN.NET...

Android播放本地文件视频是硬解,这样对CPU占用比较少,所以将直播收到的数据临时缓存3个文件,给定每个文件的大小,然后进行播放。后续还会进行优化。

具体实现代码如下:

package com.cayden.videodemo;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.DatagramPacket;

import java.net.DatagramSocket;

import android.app.Activity;

import android.app.ProgressDialog;

import android.content.Intent;

import android.media.MediaPlayer;

import android.media.MediaPlayer.OnCompletionListener;

import android.media.MediaPlayer.OnErrorListener;

import android.media.MediaPlayer.OnPreparedListener;

import android.os.Bundle;

import android.os.Environment;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.View;

import android.widget.MediaController;

import android.widget.TextView;

import android.widget.VideoView;

import com.cayden.videodemo.R;

/**

*

* 接收UDP TS流实现边缓存边播放

* 该类可以实现,但存在以下不足

* 1、播放过程会稍微卡一下这是 由于播放时候setOnCompletionListener中方法被执行

* 2、需要思考怎么解决调用onError方法

* @author cuiran

* @version 1.0.0

*/

public class UDPFileMPlayer extends Activity {

private static final String TAG=”UDPFileMPlayer”;

private VideoView mVideoView;

private TextView tvcache;

private String remoteUrl;

private String localUrl;

private ProgressDialog progressDialog = null;

private Thread receiveThread=null;

/**

* 定义了初始缓存区的大小,当视频加载到初始缓存区满的时候,播放器开始播放,

*/

private static final int READY_BUFF = 1316 * 1024*10;

private static final String FILE_DIR=Environment.getExternalStorageDirectory().getAbsolutePath()+”/VideoCache/”;

/**

* 核心交换缓存区,主要是用来动态调节缓存区,当网络环境较好的时候,该缓存区为初始大小,

* 当网络环境差的时候,该缓存区会动态增加,主要就是为了避免视频播放的时候出现一卡一卡的现象。

*/

private static final int CACHE_BUFF = 10 * 1024;

/**

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值