2017-08-01 2 views
0

にいくつかのファイルを追加します。どのように私は次のアプローチを使用して新しいプレイリストを作成するプレイリスト

このファイルを新しくPlayListに追加するにはどうすればよいですか?私の場合は

+0

'android.provider.MediaStore.Audio.Playlists.Members' – pskink

+0

を参照してください。ここにいくつかのサンプルコードがあります:https://gist.github.com/dzwillpower/5866205#file-musicutils-java-L455、475〜480行目 – pskink

+0

@pskink、コードサンプルで 'int [] ids'は何ですか? – Roman

答えて

0

最初に私はオーディオIdがファイルへのパスを使用して取得する必要がありますので、私は、ファイルのリストのみを持っている:

その後
public static long getTrackIdByPath(Context context, String pathToFile){ 
long id = - 1; 
String[] projection = {MediaStore.Audio.Media._ID, 
         MediaStore.Audio.Media.DATA}; 
String selection = MediaStore.Audio.Media.DATA + " like ?"; 
Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
     projection, selection, 
     new String[] {pathToFile}, null); 
cursor.moveToFirst(); 
if(cursor.getCount() > 0) 
    id = cursor.getLong(0); 
cursor.close(); 
return id; 

私がプレイリストにオーディオを追加することができます。

ContentResolver resolver = getContentResolver(); 
long trackId = getTrackIdByPath(context, pathToFile); 
    Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playListId); 
    Cursor cursor = resolver.query(uri, new String[] {"count(*)"}, null, null, null); 
    cursor.moveToFirst(); 
    int last = cursor.getInt(0); 
    cursor.close(); 
    ContentValues value = new ContentValues(); 
     value.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, ++last); 
     value.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, trackId); 

    resolver.insert(uri, value); 
関連する問題