2011-11-19 197 views
0

我是android新手。 谁能帮助我如何从SD卡显示图像或从SD卡播放视频.. 我尝试了很多方法,但它都没有工作..android视频播放

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" /> 


<VideoView 
    android:id="@+id/videoView1" 
    android:layout_width="243dp" 
    android:layout_height="234dp" /> 

</LinearLayout> 
+0

**我觉得这个答案很对您有所帮助 HTTP:/ /stackoverflow.com/questions/7710581/how-to-play-video-in-video-view/7721518#7721518s** – Piyush

+0

你有什么错误? – Sameer

+0

抱歉不能播放您的视频... –

回答

0

here约为VideoView完整的参考例子。 你只需要在这里设置你的视频文件的路径。

+0

我试过这一个,但仍然没有视频输出 –

+0

我得到了一个错误.. –

+0

得到它谢谢... –

0

这是从SD卡到列表视图结合所有歌曲....

public class VideoListActivity extends ListActivity { 
    private MediaCursorAdapter mediaAdapter = null; 

    private String currentFile = ""; 
    VideoView video; 
    MediaController mediaController; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main1); 
     video = (VideoView) findViewById(R.id.videoView1); 
     mediaController = new MediaController(this); 
     mediaController.setAnchorView(video); 
     video.setMediaController(mediaController); 
     video.setKeepScreenOn(true); 


     Cursor cursor = getContentResolver().query(
       MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null, 
       null); 

     if (null != cursor) { 
      cursor.moveToFirst(); 

      mediaAdapter = new MediaCursorAdapter(this, R.layout.listitem, 
        cursor); 

      setListAdapter(mediaAdapter); 


     } 
    } 

    @Override 
    protected void onListItemClick(ListView list, View view, int position, 
      long id) { 
     super.onListItemClick(list, view, position, id); 

     currentFile = (String) view.getTag(); 
     video.setVideoPath(currentFile); 
     video.start(); 
     video.requestFocus(); 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 

    } 

    private class MediaCursorAdapter extends SimpleCursorAdapter { 

     public MediaCursorAdapter(Context context, int layout, Cursor c) { 
      super(context, layout, c, new String[] { 
        MediaStore.Video.VideoColumns.DISPLAY_NAME, 
        MediaStore.Video.VideoColumns.ARTIST, 
        MediaStore.Video.VideoColumns.DURATION }, new int[] { 
        R.id.displayname, R.id.title, R.id.duration }); 
     } 

     @Override 
     public void bindView(View view, Context context, Cursor cursor) { 
      TextView title = (TextView) view.findViewById(R.id.title); 
      TextView name = (TextView) view.findViewById(R.id.displayname); 
      TextView duration = (TextView) view.findViewById(R.id.duration); 

      name.setText(cursor.getString(cursor 
        .getColumnIndex(MediaStore.Video.VideoColumns.DISPLAY_NAME))); 

     String str=cursor.getString(cursor.getColumnIndex(MediaStore.Video.VideoColumns.ARTIST)); 

     if(str.equals("<unknown>")) 
      title.setText(" "); 
     else 
     title.setText("" 
        + cursor.getString(cursor 
          .getColumnIndex(MediaStore.Video.VideoColumns.ARTIST))); 

      long durationInMs = Long.parseLong(cursor.getString(cursor 
        .getColumnIndex(MediaStore.Video.VideoColumns.DURATION))); 

      double durationInMin = ((double) durationInMs/1000.0)/60.0; 

      durationInMin = new BigDecimal(Double.toString(durationInMin)) 
        .setScale(2, BigDecimal.ROUND_UP).doubleValue(); 

      duration.setText("" + durationInMin); 

      view.setTag(cursor.getString(cursor 
        .getColumnIndex(MediaStore.Video.VideoColumns.DATA))); 
     } 

     @Override 
     public View newView(Context context, Cursor cursor, ViewGroup parent) { 
      LayoutInflater inflater = LayoutInflater.from(context); 
      View v = inflater.inflate(R.layout.listitem, parent, false); 
      bindView(v, context, cursor); 
      return v; 
     } 
    } 

} 

listitem.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/displayname" 
       android:textSize="18dip" 
       android:textStyle="bold" 
       android:singleLine="true" 
       android:ellipsize="end"/> 

     <LinearLayout 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 

       <TextView 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:id="@+id/title" 
         android:textSize="15dip" 
         android:singleLine="true" 
         android:ellipsize="end" 
         android:layout_weight="1.0"/> 

       <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:id="@+id/duration" 
         android:gravity="right" 
         android:textSize="15dip" 
         android:singleLine="true" 
         android:ellipsize="end"/> 
     </LinearLayout> 

</LinearLayout>