프로그래밍/안드로이드

안드로이드 비프음을 내보자.

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

main.xml코드 소리파일은 첨부파일에 넣어놨습니다. raw폴더를 만드셔서 거기에 소리파일을 넣으세요

 

         sound.zip

 

 

<?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:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:id="@+id/direct1"

       android:text="직접재생1"

       />

<Button

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:id="@+id/direct2"

       android:text="직접재생2"

 

 

       />

<Button

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:id="@+id/prepare1"

       android:text="미리 준비해 놓고 재생1"

       />

<Button

       android:layout_width="fill_parent"

       android:layout_height="wrap_content"

       android:id="@+id/prepare2"

       android:text="미리 준비해놓고 재생2"

       />

</LinearLayout>

ex22.java 코드

package com.android.ex22;

 

import android.app.Activity;

import android.content.Context;

import android.media.MediaPlayer;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

 

public class ex22 extends Activity {

      

       Beeper DingDong;

       Beeper ddock;

      

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

 

DingDong = new Beeper(this, R.raw.dingdong);

ddock = new Beeper(this, R.raw.ddok);

 

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

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

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

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

}

 

OnClickListener mClickListener = new OnClickListener() {

            

             @Override

             public void onClick(View v) {

                    // TODO Auto-generated method stub

                    MediaPlayer player;

                    switch(v.getId()){

                    case R.id.direct1:

                           player = MediaPlayer.create(ex22.this, R.raw.dingdong);

                           player.start();

                           break;

                    case R.id.direct2:

                           player = MediaPlayer.create(ex22.this, R.raw.ddok);

                           player.start();

                           break;

                    case R.id.prepare1:

                           DingDong.play();

                           break;

                    case R.id.prepare2:

                           ddock.play();

                           break;

      

                    }

                   

             }

       };

}

 

 

class Beeper{

       MediaPlayer player;

       Beeper(Context context, int id){

             player = MediaPlayer.create(context, id);

       }

      

       void play(){

             player.seekTo(0);

             player.start();

       }

}

 

 

 

 

 

직접재생방법과 미리 준비해놓고 재생하는 방법 2가지 중에

첫번째 방법은 일반 스마트폰으로 하고 계속 누르면 핸드폰이 뻗어버리고 두번째 방법은 안

뻗습니다. 그래서 두번째 방법을 더 추천합니다.