2010-12-14 13 views
0

こんにちは私は簡単なメディアプレーヤーを作成しています....今はうまく動作しています。ギャラリーのビデオサムネイルを取得します。サムネイルをクリックするとビデオが他のページで再生されます...サムネイルをクリックするとビデオが同じページを再生...私のスクリーンショットが表示されます....このビデオボックスで私のビデオが再生されます...このタイプのフレームを作成する方法これは私のコーディングのためである alt text同じページ(メディアプレーヤー)でビデオを再生する方法

そのスクリーンショット:私は、サムネイルをクリックすると動画が別のページを再生します alt text

:.....

これは私のスクリーンショットであります

public class videothumb extends Activity 
{ 
private final static Uri MEDIA_EXTERNAL_CONTENT_URI = 
MediaStore.Video.Media.EXTERNAL_CONTENT_URI; 
private final static String _ID = MediaStore.Video.Media._ID; 
private final static String MEDIA_DATA = MediaStore.Video.Media.DATA; 
//flag for which one is used for images selection 
private Gallery _gallery; 
private Cursor _cursor; 
private int _columnIndex; 
private int[] _videosId; 
private Uri _contentUri; 
private int video_column_index; 

protected Context _context; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    _context = getApplicationContext(); 

    setContentView(R.layout.main); 


    //set GridView for gallery 
    _gallery = (Gallery) findViewById(R.id.videoGrdVw); 
    //set default as external/sdcard uri 
    _contentUri = MEDIA_EXTERNAL_CONTENT_URI; 
    //initialize the videos uri 
    //showToast(_contentUri.getPath()); 
    initVideosId(); 
    //set gallery adapter 
    setGalleryAdapter(); 
} 
private void setGalleryAdapter() { 
    _gallery.setAdapter(new VideoGalleryAdapter(_context)); 
    _gallery.setOnItemClickListener(videogridlistener); 
    } 
private void initVideosId() { 
    try 
    { 
     //Here we set up a string array of the thumbnail ID column we want to get back 
     String [] proj={_ID}; 
     // Now we create the cursor pointing to the external thumbnail store 
     _cursor = managedQuery(_contentUri, 
       proj, // Which columns to return 
       null,  // WHERE clause; which rows to return (all rows) 
       null,  // WHERE clause selection arguments (none) 
       null); // Order-by clause (ascending by name) 
     int count= _cursor.getCount(); 
     System.out.println("total"+_cursor.getCount()); 
     // We now get the column index of the thumbnail id 
     _columnIndex = _cursor.getColumnIndex(_ID); 
     //initialize 
     _videosId = new int[count]; 
     //move position to first element 
     _cursor.moveToFirst();    
     for(int i=0;i<count;i++) 
     {    
      int id = _cursor.getInt(_columnIndex); 
      // 

      _videosId[i]= id; 
      // 
      _cursor.moveToNext(); 
      // 
     } 
    }catch(Exception ex) 
    { 
     showToast(ex.getMessage().toString());    
    } 

} 
protected void showToast(String msg) 
{ 
    Toast.makeText(_context, msg, Toast.LENGTH_LONG).show(); 
} 
private AdapterView.OnItemClickListener videogridlistener = new OnItemClickListener() { 
    public void onItemClick(AdapterView parent, View v, int position, 
long id) { 
     // Now we want to actually get the data location of the file 
     String [] proj={MEDIA_DATA}; 
     // We request our cursor again 
     _cursor = managedQuery(_contentUri, 
       proj, // Which columns to return 
       null,  // WHERE clause; which rows to return (all rows) 
       null,  // WHERE clause selection arguments (none) 
       null); 
      //System.gc(); 
     // video_column_index = 
      _cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA); 
      _columnIndex = _cursor.getColumnIndex(MEDIA_DATA); 
      // Lets move to the selected item in the cursor 
      _cursor.moveToPosition(position); 

      String filename = _cursor.getString(_columnIndex); 
      Intent intent = new Intent(videothumb.this, ViewVideo.class); 
      intent.putExtra("videofilename", filename); 
      startActivity(intent); 
      showToast(filename); 
     // Toast.makeText(videothumb.this, "" + position, Toast.LENGTH_SHORT).show(); 

     } 
     }; 
    private class VideoGalleryAdapter extends BaseAdapter 
    { 
    public VideoGalleryAdapter(Context c) 
    { 
     _context = c; 

    } 
    public int getCount() 
    { 
     return _videosId.length; 
    } 
    public Object getItem(int position) 
    { 
     return position; 
    } 
    public long getItemId(int position) 
    { 
     return position; 
    } 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     ImageView imgVw= new ImageView(_context); 
     try 
     { 
      if(convertView!=null) 
      { 
       imgVw= (ImageView) convertView; 
      } 
      imgVw.setImageBitmap(getImage(_videosId[position])); 
      imgVw.setAdjustViewBounds(true); 
      imgVw.setBackgroundColor(Color.WHITE); 
      imgVw.setLayoutParams(new Gallery.LayoutParams(150, 100)); 
      imgVw.setPadding(5,5,5,5); 
      imgVw.setScaleType(ImageView.ScaleType.FIT_XY); 
    } 
     catch(Exception ex) 
     { 
      System.out.println("StartActivity:getView()-135: ex " + ex.getClass() +", 
    "+ ex.getMessage()); 
     } 
     return imgVw; 
    } 

    // Create the thumbnail on the fly 
    private Bitmap getImage(int id) { 
    Bitmap thumb = MediaStore.Video.Thumbnails.getThumbnail(getContentResolver(),id, 
    MediaStore.Video.Thumbnails.MICRO_KIND, null); 
    System.out.println("ff"+MediaStore.Video.Thumbnails. 
    getThumbnail(getContentResolver(),id, MediaStore.Video.Thumbnails.MICRO_KIND, null)); 
     return thumb; 
     } 
     } 
    } 

は2コーディング: `

public class ViewVideo extends Activity { 
private String filename; 
private VideoView Video; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
     WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.main1); 
    //setContentView(new Zoom(this)); 
    Video=(VideoView)findViewById(R.id.VideoView01); 
    System.gc(); 
    Intent i = getIntent(); 
    Bundle extras = i.getExtras(); 
    filename = extras.getString("videofilename"); 
    Video.setVideoPath(filename); 

    Video.setMediaController(new MediaController(this)); 
    Video.requestFocus(); 
    Video.start(); 
    } 

    } 

誰も私を助けて...

あなたのmain.xmlファイルが何をしたか
+0

は次のようになり? –

答えて

2
 
You want to use Videoview 

<VideoView android:id="@+id/Videoview1" 
    android:layout_marginTop="100px" 
    android:layout_marginLeft="10px" 
    android:layout_width="20px" 
    android:layout_height="200px"/> 

and create object in your activity 
and play. 
videoview.start(); 
like this. 

Hope this will help you 
+0

オブジェクトの作成方法は?私はアンドロイドアプリケーションのために新しい...教えてください.... – RBJ

2
 
private VideoView mVView; 

mVView= (VideoView) findViewById(R.id.Videoview1); 

mVView.setVideoPath("sdcard/filename.mp4"); 
mVView.start(); 

+0

そのうまく動作しますが、別のページでビデオを再生...今私はそのスクリーンショットを投稿しています、これは私のコーディングラインのためです意図インテント=新しいインテントvideothumb.this、ViewVideo.class); – RBJ

+0

今私は自分のコーディングも投稿していますが、間違いを作って..... .....教えてください。 – RBJ

+2

Intent intent = new Intent(videothumb.class、ViewVideo.class); intent.putExtra( "keyname"、videofilename); startActivity(インテント); – Pintu

関連する問題