android无法创建媒体播放器

android无法创建媒体播放器,android,Android,当使用带有上下文和uri的setDatasource时,我无法在android上运行mediaplayer 我有一个musicplayer服务,它可以: Uri uri = result.get(0).getURI(); String uri2Path = uri.getPath(); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.setDataSource(uri2Path); //Prepare async pl

当使用带有上下文和uri的setDatasource时,我无法在android上运行mediaplayer

我有一个musicplayer服务,它可以:

Uri uri = result.get(0).getURI();
String uri2Path = uri.getPath();
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setDataSource(uri2Path);
//Prepare async playing of media, mediaplayer.start() is called in onPrepared override
mPlayer.prepareAsync();
我还尝试将路径设置为字符串和

mPlayer.SetDataSource(this.getApplicationContext(), uri);
使用上下文和uri设置时,我收到一个ioException,logcat显示“无法创建媒体播放器”,当我使用字符串设置数据源时,我从媒体播放器收到一个错误(1,-2147483648)。 设置硬编码路径“sdcard/test.mp3”效果良好

我正在通过android.provider.MediaStore接收媒体文件,并将它们保存在列表中。 AudioItem解析Uri:

public class AudioItem
{
    long id;
    String artist;
    String title;
    String album;
    long duration;

    public AudioItem(long id, String artist, String title, String album, long duration) {
        this.id = id;
        this.artist = artist;
        this.title = title;
        this.album = album;
        this.duration = duration;
    }

    public long getId() {
        return id;
    }

    public String getArtist() {
        return artist;
    }

    public String getTitle() {
        return title;
    }

    public String getAlbum() {
        return album;
    }

    public long getDuration() {
        return duration;
    }

    public Uri getURI() {
        return ContentUris.withAppendedId(
                android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id);
    }
}
在调试器中观看uri播放时,它似乎是一个有效的uri“content://media/external/audio/media/12“对我来说,我犯了什么错误


感谢您的帮助。

这里有一个类似的示例,请尝试下载并导入它


你应该看看Logcat。在我的情况下,我必须插入两个许可:

android.permission.READ_外部存储 android.permission.MANAGE_文档


死链接。这也不是答案。