剛學android不久,自己做的視頻播放器,如果做的不 好還請大家多多提意見。謝謝啊。話不多說開始代碼部分:
public class ListActivity extends Activity {<br /> /** Called when the activity is first created. */<br />private ListView listview;<br />private int[] ids;<br />private AlertDialog ad = null;<br />private AlertDialog.Builder builder = null;<br />private Vector<String> v;<br /> public static Uri uri;<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);</p><p> listview = new ListView(this);<br /> Cursor c = this.getContentResolver()<br /> .query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,<br /> new String[]{MediaStore.Video.Media.TITLE,<br />MediaStore.Video.Media.DURATION,<br />MediaStore.Video.Media._ID,<br />MediaStore.Video.Media.DISPLAY_NAME ,<br />MediaStore.Video.Media.DATA},<br /> null, null, null);<br /> if (c==null || c.getCount()==0){<br /> builder = new AlertDialog.Builder(this);<br />builder.setMessage("儲存列表為空白...").setPositiveButton("確定", null);<br />ad = builder.create();<br />ad.show();<br /> }<br /> c.moveToFirst();<br /> v=new Vector<String>();<br /> ids = new int[c.getCount()];<br /> for(int i=0;i<c.getCount();i++){<br /> ids[i] = c.getInt(3);</p><p> v.add(c.getString(4));<br /> System.out.println(v.get(i));</p><p> c.moveToNext();<br /> }<br /> listview.setAdapter(new VideoListAdapter(this, c));<br /> listview.setOnItemClickListener(new ListItemClickListener());<br /> setContentView(listview);<br /> }<br /> String string;<br /> class ListItemClickListener implements OnItemClickListener{</p><p> @Override<br /> public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {<br /> // TODO Auto-generated method stub<br /> Intent intent = new Intent(ListActivity.this,PlayActivity.class);<br /> intent.putExtra("ids", ids);<br /> string=v.get(position);</p><p> intent.putExtra("position", position);<br /> startActivity(intent);<br /> uri=Uri.parse(string);<br /> }</p><p> } java代碼: public class VideoListAdapter extends BaseAdapter {</p><p>private Context myCon;<br />private Cursor myCur;</p><p>public VideoListAdapter(Context con, Cursor cur) {<br />myCon = con;<br />myCur = cur;<br />}</p><p>@Override<br />public int getCount() {<br />return myCur.getCount();<br />}</p><p>@Override<br />public Object getItem(int position) {<br />return position;<br />}</p><p>@Override<br />public long getItemId(int position) {<br />return position;<br />}</p><p>@Override<br />public View getView(int position, View convertView, ViewGroup parent) {<br />convertView = LayoutInflater.from(myCon).inflate(R.layout.rideolist,<br />null);<br />myCur.moveToPosition(position);<br />TextView tv_video = (TextView) convertView.findViewById(R.id.video);<br />tv_video.setText(myCur.getString(0));<br />TextView tv_time = (TextView) convertView.findViewById(R.id.time);<br />tv_time.setText(toTime(myCur.getInt(1)));<br />return convertView;<br />}</p><p>public String toTime(int time) {</p><p>time /= 1000;<br />int minute = time / 60;<br />//int hour = minute / 60;<br />int second = time % 60;<br />minute %= 60;<br />return String.format("%02d:%02d", minute, second);<br />}</p><p>}
public class VideoListAdapter extends BaseAdapter {</p><p>private Context myCon;<br />private Cursor myCur;</p><p>public VideoListAdapter(Context con, Cursor cur) {<br />myCon = con;<br />myCur = cur;<br />}</p><p>@Override<br />public int getCount() {<br />return myCur.getCount();<br />}</p><p>@Override<br />public Object getItem(int position) {<br />return position;<br />}</p><p>@Override<br />public long getItemId(int position) {<br />return position;<br />}</p><p>@Override<br />public View getView(int position, View convertView, ViewGroup parent) {<br />convertView = LayoutInflater.from(myCon).inflate(R.layout.rideolist,<br />null);<br />myCur.moveToPosition(position);<br />TextView tv_video = (TextView) convertView.findViewById(R.id.video);<br />tv_video.setText(myCur.getString(0));<br />TextView tv_time = (TextView) convertView.findViewById(R.id.time);<br />tv_time.setText(toTime(myCur.getInt(1)));<br />return convertView;<br />}</p><p>public String toTime(int time) {</p><p>time /= 1000;<br />int minute = time / 60;<br />//int hour = minute / 60;<br />int second = time % 60;<br />minute %= 60;<br />return String.format("%02d:%02d", minute, second);<br />}
java代碼: