프로그래밍/안드로이드

사운드폴을 이용한 음악파일 출력

가카리 2012. 8. 3. 19:30
반응형

맨처음 프로젝트 생성뒤

아래와 같이 raw폴더를 만들고 첨부파일의 ddok.wav파일을 넣어요

 

 

                                            ddok.zip

 

 

 

 

 

xml파일

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

> 

<Button

android:id="@+id/play1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="보통 재생"

/>

<Button

android:id="@+id/play2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="볼륨 절반 재생"

/>

<Button

android:id="@+id/play3"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="3 재생"

/>

<Button

android:id="@+id/play4"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="1/2배속 재생"

/>

</LinearLayout>

자바 파일

package com.android.ex23;

 

import android.app.Activity;

import android.media.AudioManager;

import android.media.SoundPool;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

 

public class ex23 extends Activity {

     SoundPool pool;

     int ddok;

    

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

 

pool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0);

ddok = pool.load(this, R.raw.ddok, 1);

 

findViewById(R.id.play1).setOnClickListener(mClickListener);

findViewById(R.id.play2).setOnClickListener(mClickListener);

findViewById(R.id.play3).setOnClickListener(mClickListener);

findViewById(R.id.play4).setOnClickListener(mClickListener);

}

 

OnClickListener mClickListener = new OnClickListener() {

          

           @Override

           public void onClick(View v) {

                // TODO Auto-generated method stub

               

                switch(v.getId()){

                case R.id.play1:

                     pool.play(ddok, 1, 1, 0, 0, 1);

                     break;

                case R.id.play2:

                     pool.play(ddok, 0.5f, 0.5f, 0, 0, 1);

                     break;

                case R.id.play3:

                     pool.play(ddok, 1, 1, 0, 2, 1);

                     break;

                case R.id.play4:

                     pool.play(ddok, 1, 1, 0, 0, 0.5f);

                     break;

               

                }

           }

     };

}

하나씩 버튼을 눌러보고 확인해보자!