android tv box ---- 插入u盘直接播放指定文件夹中的视频思路:
1.监听u盘插入广播
2.遍历指定目录下的所有文件,找到视频文件
3.将符合条件的文件加入播放集合中
4.循环播放
num one:
配置AndroidManifest.xml,注册一个静态广播
num two:
实现广播接收者
public class MyUsbReceiver extends BroadcastReceiver {
private String TAG="MyUsbReceiver";
ArrayList as = new ArrayList();
private boolean isMovieSuffix(Context context,String fileName) {
//判断是否是视频文件
String name=fileName.toLowerCase();
String[] suffixs = context.getResources().getStringArray(
R.array.video_type_suffix);
for (String string : suffixs) {
if (name.endsWith(string)) {
return true;
}
}
return false;
}
/**
* @param action get the receiver
* @param uri get the usb's uri
* @param testMovieName get the test movie's name
*/
@Override
public void onReceive(Context context, Intent intent) {
final Context mContext = context;
String action = intent.getAction();
Uri uri = intent.getData();
final String path = uri.getPath();
final String featureFilePath=path+"/"+context.getResources().getString(
R.string.feature_file_name);
if (action.equals(Intent.ACTION_MEDIA_MOUNTED)) {
Log.d(TAG,"~~~~~~~~~~~~~~~~~~~media mounted 111111");
new Thread() {
public void run() {
File file = new File(featureFilePath);
if (file.exists()&&file.isDirectory()) {
String[] files = file.list();
for(int i = 0;iarray.xml
.rmvb
.mp4
.avi
.wmv
.mkv
.m2ts
.3gp
.rm
num three:
使用videoview播放as中存放的视频。
—1
main.xml 就一个videoView控件
mainactivity.java
public class MainActivity extends Activity implements OnCompletionListener,
OnErrorListener {
private final String TAG="MainActivity";
private VideoView videoView;
private ArrayList as;
private Intent intent;
private int i=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
intent = getIntent();
as = intent.getStringArrayListExtra("ff");
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
if (as != null) {
videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setMediaController(new MediaController(this));
videoView.setOnCompletionListener(this);
videoView.setOnErrorListener(this);
videoView.setVideoURI(Uri.parse(as.get(0)));
videoView.start();
}
}
@Override
public void onCompletion(MediaPlayer arg0) {
//循环播放处理
Log.d(TAG, "onCompletion");
i++;
if(i
so easy!!!!