안 드 로 이 드 멀티미디어 학습:안 드 로 이 드 자체 재생 기 를 호출 하여 오디 오 를 재생 합 니 다.
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri, MimeType);
startActivity(intent);
본 고 는 모든 오디 오 정 보 를 얻 기 위해 미디어 스토어 를 방문 해 야 합 니 다.먼저 모든 앨범 을 가 져 온 다음 에 사용자 가 특정한 앨범 을 클릭 할 때 이 앨범 아래 의 모든 오디 오 를 표시 한 다음 에 사용자 가 특정한 오디 오 를 클릭 할 때 시스템 자체 재생 기 를 호출 하여 오디 오 를 재생 합 니 다.
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;
/**
* Android Music
* Camera , Intent 。
* ACTION_VIEW Action
* Uri
* MIME ,
* MIME, audio/mp3
* ,
*
* , Audio , MediaStore.Audio
* Media,Album,Genre
*
* Album ,
* Album , ALbum Audio
* @author Administrator
*
*/
public class AudioDemo extends ListActivity {
private Button btnMusic;
private boolean isAlbum = true; //true , Album,false , Media
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) {
// Intent intent = new Intent(Intent.ACTION_VIEW);
// // SDCard URi
// File sdcard = Environment.getExternalStorageDirectory(); // SDCard
// File audioFile = new File(sdcard.getPath()+"/music/tt.mp3");
// // Uri
// Uri audioUri = Uri.fromFile(audioFile);
// // Uri MIME
// intent.setDataAndType(audioUri, "audio/mp3");
// startActivity(intent);
// Album
getAlbums();
isAlbum = true;
}
});
}
public void onListItemClick(ListView l, View v, int position, long id){
//
if(isAlbum){
// Album, , Album media
//l.getChildAt(position);
if(cursor.moveToPosition(position)){
getMedias(cursor.getInt(cursor.getColumnIndexOrThrow(Albums._ID)));
isAlbum = false;
}
}else{
// Media, , Media
// MediaPlayer
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);
}
}
//super.onListItemClick(l, v, position, id);
}
// Albums
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);
//this.isAlbum = true;
}
// Albums medias
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);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.