Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 전화걸기
- 안드로이드
- Eclips
- Android
- 국제화
- 어노테이션
- oracle
- 클래스
- 예외처리
- Graphic
- paint
- Java
- layout
- JSP
- 오버로딩
- 기본
- JavaScript
- 이클립스
- Spring
- mybatis
- struts2
- OGNL
- HTML
- 생성자
- 메소드
- AWT
- Menu
- 배열
- 에러페이지
- 메서드
Archives
- Today
- Total
note
Android Audio사용 (음악 재생) 본문
음악파일 위치
res -> raw -> main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/startPlayerBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="오디오 재생 시작" />
<Button
android:id="@+id/restartPlayerBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="재생 재개" />
<Button
android:id="@+id/pausePlayerBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="재생 일시중지" />
</LinearLayout>
main.xml
package com.proandroid;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class SimpleAudio extends Activity {
static final String AUDIO_PATH = "http://211.183.2.90/web/upload/the_boys.mp3";
private MediaPlayer mediaPlayer;
private int playbackPosition=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button startPlayerBtn = (Button)findViewById(R.id.startPlayerBtn);
Button pausePlayerBtn = (Button)findViewById(R.id.pausePlayerBtn);
Button restartPlayerBtn = (Button)findViewById(R.id.restartPlayerBtn);
startPlayerBtn.setOnClickListener(new OnClickListener(){
public void onClick(View view){
try{
playLocalAudio();
//playAudio(AUDIO_PATH);
//playSdcardAudio();
//playLocalAudio_UsingDescriptor();
}catch(Exception e){
e.printStackTrace();
}
}
});
pausePlayerBtn.setOnClickListener(new OnClickListener(){
public void onClick(View view){
if(mediaPlayer!=null){
//음악을 일시 정지 시킬때 정지되기 직전의 position값 저장
playbackPosition = mediaPlayer.getCurrentPosition();
//일시정지
mediaPlayer.pause();
}
}
});
restartPlayerBtn.setOnClickListener(new OnClickListener(){
public void onClick(View view){
//MediaPlayer 객체가 존재하고 현재 실행중이 아닐때
if(mediaPlayer!=null && !mediaPlayer.isPlaying()){
//음악이 일시정지되기 직전의 position값으로 셋팅
mediaPlayer.seekTo(playbackPosition);
mediaPlayer.start();
}
}
});
}
private void playLocalAudio()throws Exception{
//어플리케이션에 내장되 있는 자원을 호출해서 MediaPlayer객체 생성
mediaPlayer=MediaPlayer.create(this, R.raw.the_boys);
//MediaPlayer 객체가 가지고 있는 음악 정보를 start
mediaPlayer.start();
}
private void playAudio(String url)throws Exception{
killMediaPlayer();
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(url);
mediaPlayer.prepare();
mediaPlayer.start();
}
private void playSdcardAudio()throws Exception{
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("/sdcard/twoneone.mp3");
mediaPlayer.prepare();
mediaPlayer.start();
}
private void playLocalAudio_UsingDescriptor() throws Exception {
AssetFileDescriptor fileDesc =
getResources().openRawResourceFd(R.raw.twoneone);
if(fileDesc!=null){
mediaPlayer=new MediaPlayer();
mediaPlayer.setDataSource(
fileDesc.getFileDescriptor(),
fileDesc.getStartOffset(),
fileDesc.getLength());
mediaPlayer.prepare();
mediaPlayer.start();
fileDesc.close();
}
}
@Override
protected void onDestroy(){
super.onDestroy();
killMediaPlayer();
}
private void killMediaPlayer() {
if(mediaPlayer!=null){
try{
//MediaPlayer 자원해제
mediaPlayer.release();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
'Android > 기본' 카테고리의 다른 글
| Android surface(마우스에 이미지 따라다니기) (0) | 2012.02.01 |
|---|---|
| Android Video View (동영상 재생) (0) | 2012.02.01 |
| Android Constants Provider (0) | 2012.02.01 |
| Android FileSearch Gallery(사진선택) (0) | 2012.02.01 |
| Android Animaiton 으로 효과 (3) | 2012.02.01 |