Android实现音乐播放 Music 详解
2017-10-24 15:48
363 查看
简介:
andoird实现读取手机的歌曲播放,详解读。。。。。。。记得在android6.0以上要打开存储权限问题。。。6了一,读取手机应用music
从数据库中查询所有音乐数据
读取的数据,通过 ContentResolver获取歌曲。
Cursor cursor = contentResolver.query(contentUri, projection, where, null, sortOrder);那么,query() 里面的的参数是什么呢???接下来,我们往下面看
query()这个方法的源码
public final @Nullable Cursor query(@RequiresPermission.Read @NonNull Uri uri,
@Nullable String[] projection, @Nullable String selection,
@Nullable String[] selectionArgs, @Nullable String sortOrder) {
return query(uri, projection, selection, selectionArgs, sortOrder, null);
}
第一个 读取外部内存储的内容。
/**
* The content:// style URI for the "primary" external storage
* volume.
*/
public static final Uri EXTERNAL_CONTENT_URI =
getContentUri("external");通过 Media.EXTERNL_CONTENT_URL 得到。
第二个,返回列表,要查询的表内容。我们就根据自己想要的内容定义,如:
/**
* 查询返回内容
*/
private String[] projection = {
Media._ID,
Media.DISPLAY_NAME,
Media.DATA,
Media.ALBUM,
Media.ARTIST,
Media.DURATION,
Media.SIZE
};
第三个呢,就是一些规则了,我也不明白是什么鬼。有大神知道的,可以指点指点
"mime_type in ('audio/mpeg','audio/x-ms-wma') and bucket_display_name <> 'audio' and is_music > 0"
第四个,筛选条件,如,我们查什么到什么之间,然后定义一下,但是在这里我们不需要,所以直接传 null
第五个,类型,为文本类型。
/**
* Path to the file on disk.
* <p>
* Note that apps may not have filesystem permissions to directly access
* this path. Instead of trying to open this path directly, apps should
* use {@link ContentResolver#openFileDescriptor(Uri, String)} to gain
* access.
* <p>
* Type: TEXT
*/
public static final String DATA = "_data";到这里我们就讲解完 query() 的参数了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
二,实例化
通过1的阅读,我们拿到手机内存的歌曲,那么接下来,我们写一个activity来调用。。。绑定音频播放的实体类, MediaPlayer
直接贴上代码,文章后面有github链接,可以下载
private RecyclerView rc_list;
private MyReclerViewAdapter myReclerViewAdapter;
private TextView start_tv, stop_tv;
private MediaPlayer mePlayer;
private final int REQUEST_CODE = 1000;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rc_list = (RecyclerView) findViewById(R.id.rc_list);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
rc_list.setLayoutManager(layoutManager);
MusicLoader.instance(getContentResolver());
myReclerViewAdapter = new MyReclerViewAdapter(this, MusicLoader.musicList, this);
rc_list.setAdapter(myReclerViewAdapter);
//初始化mediaplayer对象,这里播放的是raw文件中的mp3资源
mePlayer = MediaPlayer.create(MainActivity.this, Uri.parse(MusicLoader.musicList.get(0).getUrl()));
}然后 通过 mePlayer调用start()方法播放,,,pause()方法暂停播放。
/**
* Starts or resumes playback. If playback had previously been paused,
* playback will continue from where it was paused. If playback had
* been stopped, or never started before, playback will start at the
* beginning.
*
* @throws IllegalStateException if it is called in an invalid state
*/
public void start() throws IllegalStateException {
baseStart();
stayAwake(true);
_start();
}
/** * Pauses playback. Call start() to resume. * * @throws IllegalStateException if the internal player engine has not been * initialized. */ public void pause() throws IllegalStateException { stayAwake(false); _pause(); }
================================================================================================================================
三,贴上效果图
是不是很简单呀,对了,接下继续。。。
四,结束。
我们想了解决更多音频播放问题,我们自己得去google学习学习。看看源码提供向外的方法。。。大神指教,小神有礼了。。。android 音频播放源码 : github.com源码
相关文章推荐
- 【手机变身无线音箱-WIFI流媒体传输】--音乐在PC和手机间双向播放-详解Android DLNA使用-使用DLNA实现不同设备间媒体共享
- Android之MediaPlayer播放音乐并实现进度条实例
- 【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- Android左右滑动实现Activity切换类UC+QQ+天天动听音乐播放效果
- Android游戏开发教程之十五:如何实现异步音乐播放
- Android实现音乐的播放与停止(Service的初级应用)
- 【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- 【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- Android中通过耳机按键控制音乐播放的实现
- Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果(二)
- android 的 c层 实现 音乐播放与音量调节
- 【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- Android中通过耳机按键控制音乐播放的实现
- Android--MediaPlayer(实现列表选歌,上一首,下一首,清空播放列表,搜索本地音乐文件)
- android播放音乐的三种方法实现
- Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果
- 【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- (图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- 【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!
- android实现开机自动播放音乐实例(Broadcast、Service)