홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송 메인홈 1대1상담
운.영.자.1대1.상담
온라이브 음악방송
음악방송 앱 다운로드
OKTROT(무료음악채널)
뽕짝아가씨(무료음악채널)
아리랑가요(무료음악채널)
전통가요(무료음악채널)

환상의 뽕짝파티
트로트 관광 메들리
보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
MediaPlayer 클래스 사용법
3년 전
1.  레이아웃  설정  (activity_main.xml)

  간단하게  재생,  중지,  일시중지의  3가지  버튼을  삽입합니다.


2.  레이아웃에  따른  Java  클래스  작성  (MainActivity.java)

  3개의  버튼을  Java  클래스의  Button  형  인스턴스에  연결하고  클릭할  때  곧이어  정의  할  updateActivity  함수가  호출되도록  합니다.

  Java  클래스에는  재생  상태와  관련된  4가지  상수를  정의하고  있습니다.

PLAYER_INIT:  앱이  실행되고  재생  관련  함수에서는  아직  아무것도  수행하지  않은  상태입니다.
PLAYER_STOP:  소리  재생이  중지된  상태입니다.
PLAYER_PLAY:  소리가  재생중인  상태입니다.
PLAYER_PAUSE:  소리  재생이  일시중지된  상태입니다.
package  com.example.audiotest;

import  java.io.*;
import  android.app.*;
import  android.content.res.*;
import  android.media.*;
import  android.os.*;
import  android.util.*;
import  android.view.*;
import  android.widget.*;

public  class  MainActivity  extends  Activity
{
        private  static  final  int  PLAYER_INIT  =  0;  //  처음  상태
        private  static  final  int  PLAYER_STOP  =  1;  //  중지  상태
        private  static  final  int  PLAYER_PLAY  =  2;  //  재생  상태
        private  static  final  int  PLAYER_PAUSE  =  3;  //  일시정지  상태
        
        private  MediaPlayer  mediaPlayer  =  null;  //  미디어  재생  클래스
        private  int  mediaPlayerStatus  =  PLAYER_INIT;  //  액티비티의  처음  상태
        
        private  Button  buttonPlay  =  null;  //  재생  버튼
        private  Button  buttonStop  =  null;  //  정지  버튼
        private  Button  buttonPause  =  null;  //  일시정지  버튼
        
        @Override
        protected  void  onCreate(Bundle  savedInstanceState)
        {        
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                
                this.buttonPlay  =  (Button)this.findViewById(com.example.audiotest.R.id.buttonPlay);
                this.buttonStop  =  (Button)this.findViewById(com.example.audiotest.R.id.buttonStop);
                this.buttonPause  =  (Button)this.findViewById(com.example.audiotest.R.id.buttonPause);
                
                this.buttonPlay.setOnClickListener(new  View.OnClickListener()
                {
                        @Override
                        public  void  onClick(View  v)
                        {
                                //  TODO  Auto-generated  method  stub
                                MainActivity.this.updateActivity(PLAYER_PLAY);
                        }
                });
                
                this.buttonStop.setOnClickListener(new  View.OnClickListener()
                {
                        @Override
                        public  void  onClick(View  v)
                        {
                                //  TODO  Auto-generated  method  stub
                                MainActivity.this.updateActivity(PLAYER_STOP);
                        }
                });
                
                this.buttonPause.setOnClickListener(new  View.OnClickListener()
                {        
                        @Override
                        public  void  onClick(View  v)
                        {
                                //  TODO  Auto-generated  method  stub
                                MainActivity.this.updateActivity(PLAYER_PAUSE);
                        }
                });
        }
        //  ...  생략  ...  
}  
  

재생,  중지,  일시정지  함수

  updateActivity  함수는  액티비티의  재생  상태를  변경하는  함수입니다.

  매개변수인  mediaPlayerStatus는  버튼을  누름으로써  새로  설정될  상태를  의미합니다.  매개변수로  받은  mediaPlayerStatus와  액티비티의  현재  재생  상태인  this.mediaPlayerStatus를  비교하여  재생  관련  작동을  제어할  것입니다.

//  this.mediaPlayerStatus  =  액티비티의  현재  재생  상태
private  void  updateActivity(int  mediaPlayerStatus)
{
        if  (this.mediaPlayer  ==  null)
        {
                AssetManager  assetManager  =  null;
                AssetFileDescriptor  assetFileDescriptor  =  null;
                        
                try
                {
                        //  asset에  있는  wav  파일을  재생하도록  설정
                        this.mediaPlayer  =  new  MediaPlayer();
                        
                        assetManager  =  this.getAssets();
                        assetFileDescriptor  =  assetManager.openFd("test.wav");
                        
                        this.mediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(),  assetFileDescriptor.getStartOffset(),  assetFileDescriptor.getLength());
                        assetFileDescriptor.close();
                                
                        this.mediaPlayer.prepare();
                        
                }
                catch  (IOException  e)
                {
                        //  TODO  Auto-generated  catch  block
                        e.printStackTrace();
                }
        }
        //  새로  설정할  재생  상태
        switch  (mediaPlayerStatus)
        {
        case  PLAYER_PLAY:
                //  액티비티의  현재  상태와  새로  설정할  상태를  비교
                switch  (this.mediaPlayerStatus)
                {
                case  PLAYER_PLAY:  //  이미  재생중인데  또  재생을  누른  경우  아무  작업  안  함
                        break;
                case  PLAYER_STOP:  //  정지였다가  재생을  누른  경우  처음부터  재생  (MediaPlayer  생명주기  참조)
                        try
                        {
                                this.mediaPlayer.prepare();
                                this.mediaPlayer.seekTo(0);
                        }
                        catch  (IllegalStateException  e)
                        {
                                //  TODO  Auto-generated  catch  block
                                e.printStackTrace();
                        }
                        catch  (IOException  e)
                        {
                                //  TODO  Auto-generated  catch  block
                                e.printStackTrace();
                        }
                        this.mediaPlayer.start();
                        break;
                case  PLAYER_PAUSE:  //  일시정지였는데  재생을  누른  경우  이어서  재생
                        this.mediaPlayer.start();
                        break;
                case  PLAYER_INIT:  //  맨  처음상태에서  재생을  누른  경우  마찬가지로  재생
                        this.mediaPlayer.start();
                        break;
                }
                break;
        case  PLAYER_STOP:
                switch  (this.mediaPlayerStatus)
                {
                case  PLAYER_PLAY:  //  재생  중이었는데  정지를  누른  경우
                        this.mediaPlayer.stop();
                        break;
                case  PLAYER_STOP:  //  정지  상태에서  또  정지  누른  경우
                        break;
                case  PLAYER_PAUSE:  //  일시정지  상태에서  정지  누른  경우
                        this.mediaPlayer.stop();
                        break;
                case  PLAYER_INIT:  //  맨  처음  상태에서  정지를  누른  경우
                        break;
                }
                break;
        case  PLAYER_PAUSE:
                switch  (this.mediaPlayerStatus)
                {
                case  PLAYER_PLAY:  //  재생  중이었는데  일시정지를  누른  경우
                        this.mediaPlayer.pause();
                        break;
                case  PLAYER_STOP:  //  정지였는데  일시정지를  누른  경우
                        break;
                case  PLAYER_PAUSE:  //  일시정지인데  또  일시정지를  누른  경우
                        break;
                case  PLAYER_INIT:  //  맨  처음상태에서  일시정지를  누른  경우
                        break;
                }
                break;
        }
        
        this.mediaPlayerStatus  =  mediaPlayerStatus;  //  이  액티비티의  재생  상태를  새로  받은  상태로  변경
}
추천추천 : 128 추천 목록
번호 제목
1,332
 크롬에서 플래시 항상 허용하도록 설정하기 (레지스트리) reg 파일 만들기
1,331
 GPT 디스크를 MBR 디스크로 변환
1,330
 MBR 디스크를 GPT 디스크로 변환
1,329
 구글 검색을 200% 활용하게 해주는 검색 명령어 총정리
1,328
 [Jquery] jQuery로 우클릭 방지, 드래그 방지, 선택 방지 (IE10, 파이어폭스, 크롬 확인)
1,327
 php 사용자 접속IP, 브라우저정보, os정보, http, https 접속프로토콜 알아오기
1,326
 [PHP] IE 브라우저 접속 검출하기
1,325
 윈도우10 시스템 예약 파티션 확인 및 삭제
1,324
 윈도우10 복구 파티션 삭제 방법
1,323
 윈도우10 부팅지연 검은화면에서 몇분간 머무는 현상 해결방법
1,322
 삼성노트북 바이오스 진입이 불가능한 경우 바이오스 재설치와 NVRAM 초기화
1,321
 익스플로러(IE)의 구글 검색공급자 한글로 변경 방법
1,320
 윈도우 10 기본 앱 삭제 및 복구
1,319
 meta 태그 http-equiv 설정방법과 차이점
1,318
 구글(Google)검색에서 고급연산자를 이용하여 많은 정보를 얻는 방법
1,317
 프로그램 없이 하드디스크 복사 및 백업하기
1,316
 Windows7 업데이트 기록 삭제방법
1,315
 포토샵 psd 파일 연결 레지스트리(registry) 편집
1,314
 윈도 10 최신 업데이트 후 인터넷 속도의 저하가 발생할 때 조치 사항
1,313
 Autotuning level 해제 (윈도우비스타 이상 윈도우)인터넷 속도 빠르게 하는 방법
1,312
 윈도우에서 특정프로세스를 일괄 종료하는법
 MediaPlayer 클래스 사용법
1,310
 안드로이드에서 audio player 실행하기
1,309
 [Android] MediaPlayer 음악재생기 만들기
1,308
 Eclipse와 Android NDK 연동하기
목록
추억의가요방
인기절정뽕짝파티
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
세월따라노래따라
가슴시린트로트
7080추억속으로
CDN 추천곡
종합성인가요방
못잊을옛날노래
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
POP TOP BEST

최신인기가요특집
추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.