android 使用MediaPlayer播放音乐要添加的权限是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 使用MediaPlayer播放音乐要添加的权限是啥?相关的知识,希望对你有一定的参考价值。

参考技术A

android 使用MediaPlayer播放音乐要添加的权限是:

public Boolean playMusic(Context myContext)

bgMusic = new MediaPlayer();

bgMusic = MediaPlayer.create(myContext, R.raw.music);

bgMusic.setLooping(true);

try

if (bgMusic != null)

bgMusic.stop();

bgMusic.prepare();

bgMusic.start();

return true;

catch (IllegalStateException e)

e.printStackTrace();

catch (IOException e)

e.printStackTrace();

return false;

无法在 android 中使用 MediaPlayer 播放 MediaStore.Audio 歌曲

【中文标题】无法在 android 中使用 MediaPlayer 播放 MediaStore.Audio 歌曲【英文标题】:Unable to play MediaStore.Audio songs with MediaPlayer in android 【发布时间】:2015-06-26 01:34:39 【问题描述】:

我目前正在制作一个简单的音乐播放器,并且我已经通过下面的示例脚本成功地从媒体中获取了音乐列表。但是,问题是我不知道如何从 ContentResolver 播放音乐。我读过http://developer.android.com/reference/android/provider/MediaStore.Audio.html 但很难理解。有没有好的示例或教程?我想要实现的只是在 android 中播放 ContentResolver 中的音乐。

   public  Track(Cursor cursor)
    
        id              = cursor.getLong( cursor.getColumnIndex( MediaStore.Audio.Media._ID ));
        path            = cursor.getString( cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
        title           = cursor.getString( cursor.getColumnIndex( MediaStore.Audio.Media.TITLE ));
        album           = cursor.getString( cursor.getColumnIndex( MediaStore.Audio.Media.ALBUM ));
        artist          = cursor.getString( cursor.getColumnIndex( MediaStore.Audio.Media.ARTIST ));
        albumId         = cursor.getLong( cursor.getColumnIndex( MediaStore.Audio.Media.ALBUM_ID ));
        artistId        = cursor.getLong( cursor.getColumnIndex( MediaStore.Audio.Media.ARTIST_ID ));
        duration        = cursor.getLong( cursor.getColumnIndex( MediaStore.Audio.Media.DURATION ));
        trackNo         = cursor.getInt( cursor.getColumnIndex( MediaStore.Audio.Media.TRACK ));
        uri             = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id);
    

    public static List getItems(Context activity) 

        List tracks = new ArrayList();
        ContentResolver resolver = activity.getContentResolver();
        Cursor cursor = resolver.query(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                Track.COLUMNS,
                null,
                null,
                null
        );
        while( cursor.moveToNext() )
            if( cursor.getLong(cursor.getColumnIndex( MediaStore.Audio.Media.DURATION)) < 3000 )continue;
            tracks.add(new Track(cursor));
        
        cursor.close();
        return tracks;
    

【问题讨论】:

【参考方案1】:

这是谷歌提供的文档,我引用:

在媒体播放器应用程序中可能有用的另一个功能是检索用户在设备上的音乐的能力。您可以通过在 ContentResolver 中查询外部媒体来做到这一点:

ContentResolver contentResolver = getContentResolver();
Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if (cursor == null) 
    // query failed, handle error.
 else if (!cursor.moveToFirst()) 
    // no media on the device
 else 
    int titleColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.TITLE);
    int idColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media._ID);
    do 
       long thisId = cursor.getLong(idColumn);
       String thisTitle = cursor.getString(titleColumn);
       // ...process entry...
     while (cursor.moveToNext());

要将其与 MediaPlayer 一起使用,您可以这样做:

long id = /* retrieve it from somewhere */;
Uri contentUri = ContentUris.withAppendedId(
        android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, id);

mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setDataSource(getApplicationContext(), contentUri);

// ...prepare and start...

来源: Media Playback: Retrieving Media from a Content Resolver

【讨论】:

以上是关于android 使用MediaPlayer播放音乐要添加的权限是啥?的主要内容,如果未能解决你的问题,请参考以下文章

MediaPlayer 仅在调试模式下播放音乐文件(Android)

android 使用MediaPlayer播放音乐要添加的权限是啥?

Android开发---MediaPlayer简单音乐播放器

如何用delphi编写音乐播放器

选择要使用 MediaPlayer 播放的音乐文件

无法在 android 中使用 MediaPlayer 播放 MediaStore.Audio 歌曲