package com.atguigu.mobileplayer1020.fragment;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.atguigu.mobileplayer1020.R;
import com.atguigu.mobileplayer1020.activity.SystemAudioPlayerActivity;
import com.atguigu.mobileplayer1020.adapter.LocalVideoAdapter;
import com.atguigu.mobileplayer1020.base.BaseFragment;
import com.atguigu.mobileplayer1020.bean.MediaItem;
import java.util.ArrayList;
/**
* 作者:尚硅谷-杨光福 on 2017/1/6 16:46
* 微信:yangguangfu520
* QQ号:541433511
* 作用:本地音频
*/
public class LocalAudioFragment extends BaseFragment {
private ListView listview;
private TextView tv_no_media;
private LocalVideoAdapter adapter;
/**
* 数据集合
*/
private ArrayList<MediaItem> mediaItems;
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//设置适配器
if(mediaItems != null && mediaItems.size() >0){
//有数据
//文本隐藏
tv_no_media.setVisibility(View.GONE);
adapter = new LocalVideoAdapter(mContext,mediaItems,false);
//设置适配器
listview.setAdapter(adapter);
}else{
//没有数据
//文本显示
tv_no_media.setVisibility(View.VISIBLE);
}
}
};
@Override
public View initView() {
Log.e("TAG", "本地视频ui初始化了。。");
View view = View.inflate(mContext, R.layout.fragment_local_video, null);
listview = (ListView) view.findViewById(R.id.listview);
tv_no_media = (TextView) view.findViewById(R.id.tv_no_media);
//设置item的监听
listview.setOnItemClickListener(new MyOnItemClickListener());
return view;
}
class MyOnItemClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent,View view, int position, long id) {
//3.传递列表数据
Intent intent = new Intent(mContext,SystemAudioPlayerActivity.class);
//传递点击的位置
intent.putExtra("position",position);
startActivity(intent);
}
}
@Override
public void initData() {
super.initData();
Log.e("TAG", "本地视频数据初始化了。。");
//在子线程中加载视频
getDataFromLocal();
}
/**
* 子线程中得到视频
*/
private void getDataFromLocal() {
new Thread() {
@Override
public void run() {
super.run();
//初始化集合
mediaItems = new ArrayList<MediaItem>();
ContentResolver resolver = mContext.getContentResolver();
//sdcard 的视频路径
Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
String[] objs = {
MediaStore.Audio.Media.DISPLAY_NAME,//在sdcard显示的视频名称
MediaStore.Audio.Media.DURATION,//视频的时长,毫秒
MediaStore.Audio.Media.SIZE,//文件大小-byte
MediaStore.Audio.Media.DATA,//在sdcard的路径-播放地址
MediaStore.Audio.Media.ARTIST//艺术家
};
Cursor cusor = resolver.query(uri, objs, null, null, null);
if (cusor != null) {
while (cusor.moveToNext()) {
MediaItem mediaItem = new MediaItem();
//添加到集合中
mediaItems.add(mediaItem);//可以
String name = cusor.getString(0);
mediaItem.setName(name);
long duration = cusor.getLong(1);
mediaItem.setDuration(duration);
long size = cusor.getLong(2);
mediaItem.setSize(size);
String data = cusor.getString(3);//播放地址
mediaItem.setData(data);
String artist = cusor.getString(4);//艺术家
mediaItem.setArtist(artist);
}
cusor.close();
}
//发消息-切换到主线程
handler.sendEmptyMessage(2);
}
}.start();
}
@Override
public void onRefrshData() {
super.onRefrshData();
// Log.e("TAG","onHiddenChanged。。"+this.toString());
}
}