views:

50

answers:

1

hai now i am create list view and i want to display name, size,data in the list view now i am stored in my video in this path= /data/Video Thumbnails... i run the program emulator display the empty black screen only....what mistake i made for my coding please help me....reply please.... this is for my coding

ViewVideo.java

package video.video;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;`
import android.os.Bundle;
import android.view.View;
import android.provider.MediaStore;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

public class ViewVideo extends Activity {
  private Cursor videocursor;
  private int video_column_index;
  ListView videolist;
  int count;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Object o = null;
        //o.toString();
        setContentView(R.layout.main);
        init_phone_video_grid();
  }
 private void init_phone_video_grid() {
        System.gc();
        String[] proj = { MediaStore.Video.Media._ID,
MediaStore.Video.Media.DATA,
MediaStore.Video.Media.DISPLAY_NAME,
MediaStore.Video.Media.SIZE };
           videocursor = managedQuery(MediaStore.Video.Media.INTERNAL_CONTENT_URI,
proj, null, null, null);
count = videocursor.getCount();
videolist = (ListView) findViewById(R.id.PhoneVideoList);
videolist.setAdapter(new VideoAdapter(getApplicationContext()));
 videolist.setOnItemClickListener(videogridlistener);
  }
private OnItemClickListener videogridlistener = new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View v, int position,long id) {
              System.gc();
              video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
              videocursor.moveToPosition(position);
              String filename = videocursor.getString(video_column_index);
              Intent intent = new Intent(ViewVideo.this, VideoActivity.class);
              intent.putExtra("videofilename", filename);
              startActivity(intent);
        }
  };
 public class VideoAdapter extends BaseAdapter {
        private Context vContext;

        public VideoAdapter(Context c) {
              vContext = c;
        }

        public int getCount() {
              return count;
        }

        public Object getItem(int position) {
              return position;
        }

        public long getItemId(int position) {
              return position;
        }

        public View getView(int position, View convertView, ViewGroup parent) {
              System.gc();
              TextView tv = new TextView(vContext.getApplicationContext());
              String id = null;
              if (convertView == null) {
                    video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME);
                    videocursor.moveToPosition(position);
                    id = videocursor.getString(video_column_index);
                    video_column_index = videocursor
.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE);
                    videocursor.moveToPosition(position);
                    id += " Size(KB):" + videocursor.getString(video_column_index);
                    tv.setText(id);
              } else
                    tv = (TextView) convertView;
              return tv;
        }
  }
}

VideoActivity.java

package video.video;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.MediaController;
import android.widget.VideoView;

public class VideoActivity extends Activity {
  private String filename;
  @Override
  public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.gc();
        Intent i = getIntent();
        Bundle extras = i.getExtras();
        filename = extras.getString("videofilename");
        VideoView vv = new VideoView(getApplicationContext());
        setContentView(vv);
        vv.setVideoPath("/data/VideoThumbnails");
        vv.setMediaController(new MediaController(this));
        vv.requestFocus();
        vv.start();
  }

}

main.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="fill_parent">

<ListView 
android:id="@+id/PhoneVideoList"
   android:layout_height="fill_parent" 
   android:layout_width="fill_parent"
   ></ListView>

</LinearLayout>
A: 

Check in your code that you get the correct data from MediaStore (display name, size, etc..).

Files need to scanned by MediaStore before they are available via MediaStore API.

One way to check if this is the case, is to put files into a directory on SD card:

  1. Check if MediaStore query returns data that you expect - it should not.
  2. Remove and then reinsert the SD card - MediaStore will scan the card and insert media info into it's database.
  3. Check if MediaStore query returns data that you expect - this time it should return what you expect.

If this is indeed the case then you need to manually invoke MediaScannerConnection to scan your files.

Peter Knego
my videos are stored in this path=/data/VideoThumbanails/car.3gp but now i want to test only this way because now i don't use sd card i think my question is wrong tell me i am fresher....now i am stored in internal storage only external storage not used for in my project right now.....i need your advice help me
Rajaraman Balaji