生活随笔
收集整理的這篇文章主要介紹了
Android多媒体学习五:调用Android自带的播放器播放Audio
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android有其自帶的播放器,我們可以使用隱式Intent來調用它:通過傳入一個Action為ACTION_VIEW同時,指定Data為所要播放的Audio的Uri對象,并指定格式信息,則我們就可以調用播放器來播放該Audio了。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri, MimeType);
startActivity(intent);
本文我們需要訪問MediaStore,來獲取所有Audio信息,我們首先將獲取所有的Album,然后當用戶點擊某個Album時,顯示該Album下所有的Audio,然后當用戶點擊某個Audio時,調用系統自帶的播放器播放該Audio。
?
package?demo.camera; ?import?java.io.File; ?import?org.apache.http.client.utils.URIUtils; ?import?android.app.Activity; ?import?android.app.ListActivity; ?import?android.content.Intent; ?import?android.database.Cursor; ?import?android.net.Uri; ?import?android.os.Bundle; ?import?android.os.Environment; ?import?android.provider.MediaStore; ?import?android.provider.MediaStore.Audio; ?import?android.provider.MediaStore.Audio.Albums; ?import?android.view.View; ?import?android.widget.Button; ?import?android.widget.CursorAdapter; ?import?android.widget.ListView; ?import?android.widget.SimpleCursorAdapter; ??????????????????public?class?AudioDemo?extends?ListActivity?{ ????? ?????private?Button?btnMusic; ????? ?????private?boolean?isAlbum?=?true;?????? ?????private?Cursor?cursor;?????? ?????public?void?onCreate(Bundle?savedInstanceState){ ?????????super.onCreate(savedInstanceState); ?????????this.setContentView(R.layout.audio); ?????????btnMusic?=?(Button)this.findViewById(R.id.btn_music); ?????????btnMusic.setOnClickListener(new?View.OnClickListener()?{ ????????????? ?????????????@Override?????????????public?void?onClick(View?v)?{ ????????????????? ?????????????????????????? ??????????????????????????????????getAlbums(); ?????????????????isAlbum?=?true; ?????????????} ?????????}); ????????? ?????} ????? ?????public?void?onListItemClick(ListView?l,?View?v,?int?position,?long?id){ ????????? ??????????????????if(isAlbum){ ???????????????????????????????????????if(cursor.moveToPosition(position)){ ?????????????????getMedias(cursor.getInt(cursor.getColumnIndexOrThrow(Albums._ID))); ?????????????????isAlbum?=?false; ?????????????} ?????????}else{ ???????????????????????????????????????if(cursor.moveToPosition(position)){ ?????????????????String?mediaUri?=?cursor.getString(cursor.getColumnIndexOrThrow(Audio.Media.DATA)); ?????????????????String?type?=?cursor.getString(cursor.getColumnIndexOrThrow(Audio.Media.MIME_TYPE)); ?????????????????Uri?data?=?Uri.fromFile(new?File(mediaUri)); ?????????????????Intent?intent?=?new?Intent(Intent.ACTION_VIEW); ?????????????????intent.setDataAndType(data,?type); ?????????????????startActivity(intent); ?????????????} ?????????} ????????? ??????????????} ????? ????? ??????????public?void?getAlbums(){ ?????????String[]?columns?=?new?String[]{ ?????????????????Albums._ID, ?????????????????Albums.ALBUM ?????????}; ?????????String[]?from?=?new?String[]{ ?????????????????Albums.ALBUM ?????????}; ?????????int[]?to?=?new?int[]{ ?????????????????android.R.id.text1 ?????????}; ?????????cursor?=?this.managedQuery(Albums.EXTERNAL_CONTENT_URI,?columns,?null,?null,?Albums.DEFAULT_SORT_ORDER); ?????????CursorAdapter?adapter?=?new?SimpleCursorAdapter(this,?android.R.layout.simple_list_item_1,?cursor,?from,?to); ?????????this.setListAdapter(adapter); ?????????????????? ?????} ????? ??????????public?void?getMedias(int?albumId){ ?????????String[]?columns?=?new?String[]{ ?????????????????Audio.Media._ID, ?????????????????Audio.Media.DATA, ?????????????????Audio.Media.DISPLAY_NAME, ?????????????????Audio.Media.MIME_TYPE ?????????}; ?????????String?selection?=?Audio.Media.ALBUM_ID?+?"=?"; ?????????String[]?selectionArgs?=?new?String[]{ ?????????????????albumId+""?????????}; ????????? ?????????String[]?from?=?new?String[]{ ?????????????????Audio.Media.DISPLAY_NAME ?????????}; ?????????int[]?to?=?new?int[]{ ?????????????????android.R.id.text1 ?????????}; ????????? ?????????cursor?=?this.managedQuery(Audio.Media.EXTERNAL_CONTENT_URI,?columns,?selection,?selectionArgs,?Audio.Media.TITLE); ?????????CursorAdapter?adapter?=?new?SimpleCursorAdapter(this,?android.R.layout.simple_list_item_1,cursor,from,to); ?????????this.setListAdapter(adapter); ?????} ?} ? ?
轉載于:https://blog.51cto.com/whatandroid/987103
總結
以上是生活随笔為你收集整理的Android多媒体学习五:调用Android自带的播放器播放Audio的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。