【发布时间】:2014-03-02 20:09:33
【问题描述】:
我使用Android.media开发了一个小音乐播放器,我想得到歌曲的标题,艺术家等,我在整个互联网上搜索,但我没有找到C#的代码! :/ 请帮忙!!!
【问题讨论】:
-
你用这个? xamarin.com/android
我使用Android.media开发了一个小音乐播放器,我想得到歌曲的标题,艺术家等,我在整个互联网上搜索,但我没有找到C#的代码! :/ 请帮忙!!!
【问题讨论】:
/**
* SD CARD QUERIES
*/
public ArrayList<Track> getAllSdCardTracks(Context context) {
ArrayList<Track> tracks = new ArrayList<Track>();
Cursor c = context
.getContentResolver()
.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[] { MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.ALBUM_ID }, "1=1",
null, null);
if (c.moveToFirst()) {
do {
String mArtist = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
String mTitle = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
String mId = c.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
String mAlbumName = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
String mAlbumID = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));
String mPath = c
.getString(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
long mDuration = c
.getLong(c
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
String mFormattedDuration = DateUtils
.formatElapsedTime(mDuration / 1000);
Track track = new Track(mAlbumID, mAlbumName, mArtist, mId, mTitle, mPath , mFormattedDuration);
tracks.add(track);
} while (c.moveToNext());
if (c != null)
c.close();
}
return tracks;
}
public class Track{
String mAlbumId;
String mAlbumName;
String mArtist
String mId;
String mTitle;
String mPath;
String mDuration
public Track(String albumID,String albumName,String artist,String id,String title,String path ,String formattedDuration)
{
this.mAlbumId = albumId;
this.mAlbumName = albumName;
this.mArtist = artist;
this.mId = id;
this.mTitle = title;
this.mPath = path;
this.mDuration = formattedDuration;
}
}
【讨论】:
Cursor是一个Android类。听起来你应该用接口ICursor声明它然后得到它var loader = new CursorLoader(activity, uri, projection, null, null, null); var cursor = (ICursor)loader.LoadInBackground();