2016-01-21 34 views
0

我試圖以列表格式從SD卡獲取所有.mp4視頻。 但有些失敗,它不適用於我。 當你啓動應用程序時,我什麼也沒有得到,全都是白色的。 可能是什麼?以及如何解決它? 基本是從here我嘗試以列表格式從SD卡獲取所有.mp4視頻

感謝

public class VideoScan extends ListActivity{ 

File dir = new File("/sdcard/"); 
String[] videoFileList = dir.list(
     new FilenameFilter() 
{ 
    public boolean accept(File dir, String videoFileList) 
    { 
     return videoFileList.endsWith(".mp4"); 

    } 
}); 


public class MyThumbnaildapter extends ArrayAdapter<String>{ 

    public MyThumbnaildapter(Context context, int textViewResourceId, 
          String[] objects) { 
     super(context, textViewResourceId, objects); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     View row = convertView; 
     if(row==null){ 
      LayoutInflater inflater=getLayoutInflater(); 
      row=inflater.inflate(R.layout.activity_video_scan, parent, false); 
     } 

     TextView textfilePath = (TextView)row.findViewById(R.id.FilePath); 
     textfilePath.setText(videoFileList[position]); 
     ImageView imageThumbnail = (ImageView)row.findViewById(R.id.Thumbnail); 

     Bitmap bmThumbnail; 
     bmThumbnail = ThumbnailUtils.createVideoThumbnail(videoFileList[position], Thumbnails.MICRO_KIND); 
     imageThumbnail.setImageBitmap(bmThumbnail); 

     return row; 
    } 

} 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setListAdapter(new MyThumbnaildapter(VideoScan.this, R.layout.activity_video_scan, videoFileList)); 
} 

回答

1

也許路徑爲 「/ SD卡/」 是錯誤的。

因爲現在的SD卡的路徑是「/emulator0/....",You可以使用

File file = Environment.getExternalStorageDirectory(); 

來獲取文件。

你可以試試這個方法。

+0

現在我在ro.vrt.videoplayerstreaming.VideoScan $ MyThumbnaildapter得到這個錯誤。 (VideoScan.java:0) 在ro.vrt.videoplayerstreaming.VideoScan.onCreate(VideoScan.java:73) –

+0

我覺得這並不e中創建,沒什麼好文件DIR = Environment.getExternalStorageDirectory(); 字符串[] videoFileList = dir.list( 新的FilenameFilter() { 公共布爾接受(文件目錄,字符串videoFileList) { 返回videoFileList.endsWith(」 MP4" ); } }); –

+0

試試這個。我讓它在我的手機上成功運行。以及如何修改我在評論中添加的內容。 – hongbochen

0

試試這個:

public class MainActivity extends ListActivity { 

/* Get the absolute path */ 
String path = Environment.getExternalStorageDirectory().getAbsolutePath(); 
File dirs = new File(path); 

/** 
* array videoFileList saves the mp4 file name, 
* so in the adapter ,You need to add the path Manually 
*/ 
String[] videoFileList = dirs.list(
     new FilenameFilter() 
{ 
    public boolean accept(File dir, String videoFileList) 
    { 
     return videoFileList.endsWith(".mp4"); 

    } 
}); 

//String[] videoFileList = dirs.list(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Log.e("ssssss",videoFileList[0]); 

    setListAdapter(new MyThumbnaildapter(MainActivity.this, R.layout.activity_video_scan, videoFileList)); 
} 


public class MyThumbnaildapter extends ArrayAdapter<String>{ 

    public MyThumbnaildapter(Context context, int textViewResourceId, 
          String[] objects) { 
     super(context, textViewResourceId, objects); 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     View row = convertView; 
     if(row==null){ 
      LayoutInflater inflater=getLayoutInflater(); 
      row=inflater.inflate(R.layout.activity_video_scan, parent, false); 
     } 

     TextView textfilePath = (TextView)row.findViewById(R.id.FilePath); 
     textfilePath.setText(videoFileList[position]); 
     ImageView imageThumbnail = (ImageView)row.findViewById(R.id.Thumbnail); 

     Bitmap bmThumbnail; 

     // path+"/"+videoFileList[position] 
     // add the path mannually 
     bmThumbnail = ThumbnailUtils.createVideoThumbnail(path+"/"+videoFileList[position], Thumbnails.MICRO_KIND); 
     imageThumbnail.setImageBitmap(bmThumbnail); 

     return row; 
    } 

} 
} 
+0

不工作這個代碼。 –