android获取音频、视频、图片信息

MediaStore提供了音频、视频、图片信息,我们可以通过ContentResolver进行读取。

首先给出了Audio,Video和Image三个类,然后分别定义了三个Provider:AudioProvider,VideoProvider,ImageProvider,貌似用到了工厂方法模式:D,最后给出了一个示例类Provider。

View Code
package com.provider;

public class Audio {

private int id;
private String title;
private String album;
private String artist;
private String path;
private String displayName;
private String mimeType;
private long duration;
private long size;

/**
*
*/
public Audio() {
super();
}

/**
*
@param id
*
@param title
*
@param album
*
@param artist
*
@param path
*
@param displayName
*
@param mimeType
*
@param duration
*
@param size
*/
public Audio(int id, String title, String album, String artist,
String path, String displayName, String mimeType,
long duration,
long size) {
super();
this.id = id;
this.title = title;
this.album = album;
this.artist = artist;
this.path = path;
this.displayName = displayName;
this.mimeType = mimeType;
this.duration = duration;
this.size = size;
}



public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getAlbum() {
return album;
}

public void setAlbum(String album) {
this.album = album;
}

public String getArtist() {
return artist;
}

public void setArtist(String artist) {
this.artist = artist;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public String getDisplayName() {
return displayName;
}

public void setDisplayName(String displayName) {
this.displayName = displayName;
}

public String getMimeType() {
return mimeType;
}

public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}

public long getDuration() {
return duration;
}

public void setDuration(long duration) {
this.duration = duration;
}

public long getSize() {
return size;
}

public void setSize(long size) {
this.size = size;
}

}
View Code
package com.provider;

public class Video {
private int id;
private String title;
private String album;
private String artist;
private String displayName;
private String mimeType;
private String path;
private long size;
private long duration;

/**
*
*/
public Video() {
super();
}

/**
*
@param id
*
@param title
*
@param album
*
@param artist
*
@param displayName
*
@param mimeType
*
@param data
*
@param size
*
@param duration
*/
public Video(int id, String title, String album, String artist,
String displayName, String mimeType, String path,
long size,
long duration) {
super();
this.id = id;
this.title = title;
this.album = album;
this.artist = artist;
this.displayName = displayName;
this.mimeType = mimeType;
this.path = path;
this.size = size;
this.duration = duration;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getAlbum() {
return album;
}

public void setAlbum(String album) {
this.album = album;
}

public String getArtist() {
return artist;
}

public void setArtist(String artist) {
this.artist = artist;
}

public String getDisplayName() {
return displayName;
}

public void setDisplayName(String displayName) {
this.displayName = displayName;
}

public String getMimeType() {
return mimeType;
}

public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public long getSize() {
return size;
}

public void setSize(long size) {
this.size = size;
}

public long getDuration() {
return duration;
}

public void setDuration(long duration) {
this.duration = duration;
}

}
View Code
package com.provider;

public class Image {
private int id;
private String title;
private String displayName;
private String mimeType;
private String path;
private long size;

public Image() {
super();
}

/**
*
@param id
*
@param title
*
@param displayName
*
@param mimeType
*
@param path
*
@param size
*/
public Image(int id, String title, String displayName, String mimeType,
String path,
long size) {
super();
this.id = id;
this.title = title;
this.displayName = displayName;
this.mimeType = mimeType;
this.path = path;
this.size = size;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}

public String getDisplayName() {
return displayName;
}

public void setDisplayName(String displayName) {
this.displayName = displayName;
}

public String getMimeType() {
return mimeType;
}

public void setMimeType(String mimeType) {
this.mimeType = mimeType;
}

public String getPath() {
return path;
}

public void setPath(String path) {
this.path = path;
}

public long getSize() {
return size;
}

public void setSize(long size) {
this.size = size;
}

}
View Code
package com.provider;
import java.util.List;

public interface AbstructProvider {
public List<?> getList();
}
View Code
package com.provider;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;

public class AudioProvider implements AbstructProvider {

private Context context;

public AudioProvider(Context context) {
this.context = context;
}

@Override
public List<?> getList() {
List
<Audio> list = null;
if (context != null) {
Cursor cursor
= context.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null, null,
null, null);
if (cursor != null) {
list
= new ArrayList<Audio>();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
String title
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String album
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
String artist
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
String path
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
String displayName
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
String mimeType
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE));
long duration = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
long size = cursor
.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
Audio audio
= new Audio(id, title, album, artist, path,
displayName, mimeType, duration, size);
list.add(audio);
}
cursor.close();
}
}
return list;
}

}
View Code
package com.provider;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;

public class VideoProvider implements AbstructProvider {
private Context context;

public VideoProvider(Context context) {
this.context = context;
}

@Override
public List<?> getList() {
List
<Video> list = null;
if (context != null) {
Cursor cursor
= context.getContentResolver().query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
null, null,
null, null);
if (cursor != null) {
list
= new ArrayList<Video>();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
String title
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
String album
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.ALBUM));
String artist
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.ARTIST));
String displayName
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME));
String mimeType
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));
String path
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
long duration = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));
long size = cursor
.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));
Video video
= new Video(id, title, album, artist, displayName, mimeType, path, size, duration);
list.add(video);
}
cursor.close();
}
}
return list;
}

}
View Code
package com.provider;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;

public class ImageProvider implements AbstructProvider {
private Context context;

public ImageProvider(Context context) {
this.context = context;
}

@Override
public List<?> getList() {
List
<Image> list = null;
if (context != null) {
Cursor cursor
= context.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null, null,
null, null);
if (cursor != null) {
list
= new ArrayList<Image>();
while (cursor.moveToNext()) {
int id = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media._ID));
String title
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.TITLE));
String path
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
String displayName
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DISPLAY_NAME));
String mimeType
= cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.MIME_TYPE));
long size = cursor
.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.SIZE));
Image audio
= new Image(id, title, displayName, mimeType,
path, size);
list.add(audio);
}
cursor.close();
}
}
return list;
}

}
View Code
package com.provider;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;

public class Provider extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 音频
AbstructProvider provider = new AudioProvider(this);
List
<?> list = provider.getList();
// 视频
// AbstructProvider provider = new VideoProvider(this);
// List<?> list = provider.getList();
// 图片
// AbstructProvider provider = new ImageProvider(this);
// List<?> list = provider.getList();
}

}
posted @ 2011-06-02 13:14  penink  阅读(13464)  评论(5编辑  收藏  举报