-1

如何将 mp3 音乐(String格式)解析为 Uri 并使用RingtoneManager? 有什么建议么

编辑:我尝试过类似以下的方法,其中item1String格式。但是当我运行应用程序时,音乐没有播放。

    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();
4

2 回答 2

3

如果它是有效的 Uri,请使用Uri.parse()

于 2019-03-26T15:33:07.210 回答
1

您可以使用

/**
 * 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);
}
于 2019-03-26T15:34:21.010 回答