Как я могу разобрать строку в Uri? - PullRequest
0 голосов
/ 26 марта 2019

Как мне проанализировать музыку в формате mp3 (в формате String) в Uri и воспроизвести ее, используя RingtoneManager? Любые предложения

Редактировать: Я пробовал что-то вроде следующего, где item1 в формате String. Но музыка не играет, когда я запускаю приложение.

    String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
    String[] projection = {
            MediaStore.Audio.Media.TITLE,
    };
    Cursor cursor = this.managedQuery(
            MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            projection,
            selection,
            null,
            null);

    spin.setOnItemSelectedListener(this);
    List<String> songs = new ArrayList<String>();
    while (cursor.moveToNext()) {
        songs.add(cursor.getString(0));
    }
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, songs);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spin.setAdapter(dataAdapter);
             . 
             .
             .
    @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    item1 = parent.getItemAtPosition(position).toString();
      }
              . 
              .
    Uri par=Uri.parse(item1);
    Uri alarmSound = RingtoneManager.setActualDefaultRingtoneUri(context,RingtoneManager.TYPE_ALARM,par);
    Ringtone ringtone = RingtoneManager.getRingtone(context,par);
                   .
                   .
                   .

    ringtone.play();

Ответы [ 2 ]

3 голосов
/ 26 марта 2019

Если это действительный Uri, используйте Uri.parse()

1 голос
/ 26 марта 2019

Вы можете использовать

/**
 * Creates a Uri which parses the given encoded URI string.
 *
 * @param uriString an RFC 2396-compliant, encoded URI
 * @throws NullPointerException if uriString is null
 * @return Uri for this given uri string
 */
public static Uri parse(String uriString) {
    return new StringUri(uriString);
}
...