1. 程式人生 > >使用Vitamio打造自己的Android萬能播放器(3)——本地播放(主介面、播放列表)

使用Vitamio打造自己的Android萬能播放器(3)——本地播放(主介面、播放列表)

public  class FragmentFile  extends FragmentBase  implements OnItemClickListener {      private FileAdapter mAdapter;     @Override      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {         View v =  super.onCreateView(inflater, container, savedInstanceState);         mAdapter =  new
 FileAdapter(getActivity(),  null);         mListView.setAdapter(mAdapter);         mListView.setOnItemClickListener( this);          new ScanVideoTask().execute();          return v;     }      /**  單擊啟動播放  */     @Override      public  void onItemClick(AdapterView<?> parent, View view,  int
 position,  long id) {          final File f = mAdapter.getItem(position);         Intent intent =  new Intent(getActivity(), VideoViewDemo. class);         intent.putExtra("path", f.getPath());         startActivity(intent);     }      /**  掃描SD卡  */      private  class ScanVideoTask  extends
 AsyncTask<Void, File, Void> {         @Override          protected Void doInBackground(Void... params) {             eachAllMedias(Environment.getExternalStorageDirectory());              return  null;         }         @Override          protected  void onProgressUpdate(File... values) {             mAdapter.add(values[0]);             mAdapter.notifyDataSetChanged();         }          /**  遍歷所有資料夾,查找出視訊檔案  */          public  void eachAllMedias(File f) {              if (f !=  null && f.exists() && f.isDirectory()) {                 File[] files = f.listFiles();                  if (files !=  null) {                      for (File file : f.listFiles()) {                          if (file.isDirectory()) {                             eachAllMedias(file);                         }  else  if (file.exists() && file.canRead() && FileUtils.isVideoOrAudio(file)) {                             publishProgress(file);                         }                     }                 }             }         }     }      private  class FileAdapter  extends ArrayAdapter<File> {          public FileAdapter(Context ctx, ArrayList<File> l) {              super(ctx, l);         }         @Override          public View getView( int position, View convertView, ViewGroup parent) {              final File f = getItem(position);              if (convertView ==  null) {                  final LayoutInflater mInflater = getActivity().getLayoutInflater();                 convertView = mInflater.inflate(R.layout.fragment_file_item,  null);             }             ((TextView) convertView.findViewById(R.id.title)).setText(f.getName());              return convertView;         }     }