如何创建播放列表(How to Create a Playlist)

2019-07-31 01:32发布

我想创建一个应用程序,它只是提供了一个EditText和ImageButton的。 如果比唐被点击,这个想法是,专辑添加到播放列表中,在盒子的EditText命名。 相册应随机选择。 不用说,专辑曲目应该是正确的顺序。 我可以添加后更多的功能,如: 保存,覆盖,删除等我有接口,但我的代码中挣扎。 我有点弄ContentProviders的概念。 所以代码需要:

  • 进入播放列表,我相信这是通过使用MediaStore.Audio.Playlists实现

  • 访问相册,我相信这是通过使用MediaStore.Audio.Albums实现

  • 添加到播放列表

我有以下代码(从该网站获得最位。感谢BTW)来访问播放列表,但使用空异常错误崩溃。

public void checkforplaylists()
{
    //Get a cursor over all playlists.
    final ContentResolver resolver= MediaProvider.mContentResolver;
    final Uri uri=MediaStore.Audio.Playlists.INTERNAL_CONTENT_URI;
    final String id=MediaStore.Audio.Playlists._ID;
    final String name=MediaStore.Audio.Playlists.NAME;
    final String[]columns={id,name};
    final Cursor playlists= resolver.query(uri, columns, null, null, null);

        if(playlists==null)
            {
                Log.e(TAG,"Found no playlists.");
                    return;
            }
    return;
}

任何人谁可以帮忙吗?

Answer 1:

我想你的意思NullPointerException ,这意味着你的任务之一是为空,然后您尝试访问你想要它是对象的成员。 最有可能的是resolver ,但可以肯定,你需要报告的行数和/或通过与调试步骤。



Answer 2:

这工作。 当使用ContentResolver的,上下文(本)是必需的。

public void checkforplaylists(Context context)
{
    ContentResolver cr = context.getContentResolver();
    final Uri uri=MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
    final String id=MediaStore.Audio.Playlists._ID;
    final String name=MediaStore.Audio.Playlists.NAME;
    final String[]columns={id,name};
    final Cursor playlists= cr.query(uri, columns, null, null, null);
        if(playlists==null)
            {
                Log.e(TAG,"Found no playlists.");
                    return;
            }
        Log.e(TAG,"Found playlists.");
    return;
}


Answer 3:

使用此代码,将工作

public boolean addPlaylist(String pname) {


    Uri playlists = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
    Cursor c = resolver.query(playlists, new String[] { "*" }, null, null,
            null);
    long playlistId = 0;
    c.moveToFirst();
    do {
        String plname = c.getString(c
                .getColumnIndex(MediaStore.Audio.Playlists.NAME));
        if (plname.equalsIgnoreCase(pname)) {
            playlistId = c.getLong(c
                    .getColumnIndex(MediaStore.Audio.Playlists._ID));
            break;
        }
    } while (c.moveToNext());
    c.close();

    if (playlistId != 0) {
        Uri deleteUri = ContentUris.withAppendedId(playlists, playlistId);
        Log.d(TAG, "REMOVING Existing Playlist: " + playlistId);

        // delete the playlist
        resolver.delete(deleteUri, null, null);
    }

    Log.d(TAG, "CREATING PLAYLIST: " + pname);
    ContentValues v1 = new ContentValues();
    v1.put(MediaStore.Audio.Playlists.NAME, pname);
    v1.put(MediaStore.Audio.Playlists.DATE_MODIFIED,
            System.currentTimeMillis());
    Uri newpl = resolver.insert(playlists, v1);
    Log.d(TAG, "Added PlayLIst: " + newpl);

    flag=true;
    return flag;
}


文章来源: How to Create a Playlist