2011-02-01 6 views
14

나는 안드로이드에서 게임 응용 프로그램을 개발 중입니다. 모든 견해를 고안하고 모든 기능을 구현했습니다. 이제 마지막 화면에서 안드로이드에서 사운드를 재생해야합니다. 아무도 나에게 그걸 어떻게 추구 할 수 있는지 말해 줄 수 있습니까?안드로이드 응용 프로그램에서 소리 구현

답변

27

그리고 나서 mp에서 모든 시작/정지/재설정/일시 정지/해제 방법을 얻습니다. 안드로이드 개발자 페이지에서

+0

제가 MediaPlayer를 MP = MediaPlayer.create (getApplicationContext() R.raw.AudioFile1)을 첨가한다; mp.start(); 창백한 단추 클릭에 ?? 요시 ??? 미리 감사드립니다. 감사합니다. Tushar – User

+0

음, mp.start()는 버튼 클릭시 필요한 것입니다. 이전에 선언 할 수있는 모든 것. 당신은 http://developer.android.com/reference/android/media/MediaPlayer.html – yosh

+0

을 정말로 확인하지 않을 수도 있습니다 : D 그냥 파일을 준비하고, Sriram이 작성한/res/raw에 넣습니다. "import android.media. 미디어 플레이어;" 그리고 위의 코드에서 작동해야합니다. AudioFile1은/raw에있는 파일 이름입니다 (AudioFile1.wav 또는 mp3이거나 지원되는 항목이면 확장자를 추가하지 마십시오). – yosh

10

/res/raw (폴더 생성 후)에 사운드 파일을 놓은 다음 MediaPlayer를 사용하여 사운드를 초기화하고 시작한 다음 소리 재생을 중지하십시오. MediaPlayer 설명서는 here입니다.

HTH,
Sriram.

6

: http://developer.android.com/guide/topics/media/index.html

수행 할 수있는 천연 자원 아마도 가장 일반적인 것은에서 재생이 이 사용자의 응용 프로그램 내에서 (특히 사운드) 미디어를 재생할 수 있습니다. 이렇게하면 쉽게 입니다 :

사운드 (또는 다른 미디어 자원)를 고해상도로 파일/원시 폴더 이클립스 플러그인 (또는 aapt에이) 그것을 발견하고로를 만들 것 프로젝트의 을 넣어 당신의 R 클래스에서 를 참조 할 수있는 자원은 해당 인스턴스에 시작() MediaPlayer.create를 사용하여 해당 자원을 참조, MediaPlayer를의 인스턴스를 만든 다음 전화 :

MediaPlayer mp = MediaPlayer.create(context, R.raw.sound_file_1); 
,

mp.start();

재생을 중지하려면 stop()을 호출하십시오. 미디어를 나중에 재생하려면 start()를 다시 호출하기 전에 MediaPlayer 객체를 재설정()하고 prepare()해야합니다. (create())는 첫 번째 시간을 준비합니다.

재생을 일시 중지하려면 pause()를 호출합니다. 을 (을) 일시 중지 한 곳에서 재생을 다시 시작합니다().

파일에서 재생 또는 당신은 파일 시스템 또는 웹 URL에서 미디어 파일을 재생할 수 있습니다 스트림 :

(새 통화 setDataSource를 사용하여 MediaPlayer를 의 인스턴스를 만듭니다)를 문자열과 경로를 포함 인스턴스에 당신이 먼저 연주 (준비하려는 파일에 (로컬 파일 시스템 또는 URL)) 다음 시작() :이

처럼

MediaPlayer mp = new MediaPlayer(); 
mp.setDataSource(PATH_TO_FILE); 
mp.prepare(); 
mp.start(); 
+1

me.thanks +1 – Rasel

4

Media Player를 사용하면이 문제를 해결할 수 있습니다.여기

는 단계 ::

1 .- "원시"내부 "디버그"폴더라는 새로운 폴더를 생성합니다. "디버그"폴더> 새> 디렉토리>에 이름을 짓고 이름을 "원시"로 지정하려면 :

파일을 추가하려면 .wav/.mp3 파일을 "원시"폴더로 드래그하십시오.

2 .- 가져 오기 미디어 플레이어 :

수입 android.media.MediaPlayer; 당신이 방법을 사용할 수 있습니다, 마지막으로

mp1 = MediaPlayer.create(MainActivity.this, raw.my_sound_name); 

5 .- : 해당 소리 asign,

public MediaPlayer mp1; 

4 .- 내부에서 onCreate 방법 :

3 .- MediaPlayer를 전역 변수 (들)을 선언

+0

미디어 플레이어를 중지하기 전에 사운드가 끝나면 어떻게 될까요? 그는 자동으로 멈 춥니? –

+0

예, 소리가 끝날 때까지 멈 춥니 다. – user2998689

6

내가 원활한 P에 대한 SoundPool을 제안 ...

mp1.start()/mp1.stop()/mp1.pause() mediaPlayer는 처음에는 전체 사운드 데이터를 재생하는 것보다 메모리에로드하기 때문에 사운드 사이를 자주 전환 할 때 약간의 지연이 발생합니다.

SoundPool은 작은 크기의 사운드 파일로 더 좋은 옵션이며 .ogg 미디어 파일로 최상의 결과를 만들어냅니다.

SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); 
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() { 
    @Override 
    public void onLoadComplete(SoundPool soundPool, int sampleId, 
     int status) { 
    loaded = true; 
    } 
}); 
soundID = soundPool.load(this, R.raw.sound, 1); 
if (loaded) { 
    soundPool.play(soundID, volume, volume, 1, 0, 1f); 
    } 
관련 문제