【问题标题】:How can I get a MP3 file info for my musicplayer in android developed with C#如何在使用 C# 开发的 android 中获取我的音乐播放器的 MP3 文件信息
【发布时间】:2014-03-02 20:09:33
【问题描述】:

我使用Android.media开发了一个小音乐播放器,我想得到歌曲的标题,艺术家等,我在整个互联网上搜索,但我没有找到C#的代码! :/ 请帮忙!!!

【问题讨论】:

标签: c# android title


【解决方案1】:
/**
     * 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;
}
}

【讨论】:

  • tnx 很多,但它不识别 ArrayList 和其他功能,在哪一类?!
  • Track 只是一个包含数据的容器类,我没有添加它,因为您可能不需要所有其他数据
  • 试试看这个docs.xamarin.com/guides/android/platform_features/…Cursor是一个Android类。听起来你应该用接口ICursor声明它然后得到它var loader = new CursorLoader(activity, uri, projection, null, null, null); var cursor = (ICursor)loader.LoadInBackground();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 2018-02-18
相关资源
最近更新 更多