2010-12-14 56 views
0

salut j'ai créé un lecteur multimédia simple .... maintenant son fonctionnement bien. Je récupère les vignettes vidéo dans la galerie. quand je clique sur les vignettes, la vidéo sera jouée dans une autre page ... si je clique sur les vignettes, la vidéo joue la même page ... vois ma capture d'écran .... ma lecture vidéo dans cette boîte rouge ... ce type de cadre comment créer .....comment lire la vidéo dans la même page (lecteur multimédia)

c'est mon capture d'écran: alt text

si je clique sur les vignettes de la vidéo va jouer une autre page: que capture d'écran: alt text

ceci est pour mon codage:

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; 
     } 
     } 
    } 

codage 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(); 
    } 

    } 

quelqu'un me aider ...

+0

qu'est-ce que votre fichier main.xml ressembler? –

Répondre

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

comment créer un objet? i nouveau pour l'application Android .... dites-moi .... – RBJ

2
 
private VideoView mVView; 

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

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

+0

ok son fonctionnement bien mais la lecture vidéo dans une autre page ... maintenant je suis poster cette capture d'écran et c'est pour ma ligne de codage Intention intention = nouvelle Intention (videothumb.this, ViewVideo.class); – RBJ

+0

maintenant je suis poster mon codage aussi quelle erreur j'ai fait ..... dites-moi .... – RBJ

+2

Intention intention = new Intention (videothumb.class, ViewVideo.class); intention.putExtra ("nom-clé", nom-fichier-vidéo); startActivity (intention); – Pintu