zoukankan      html  css  js  c++  java
  • 10_播放音效

    copy 音效文件 explosion.ogg 和 coin.ogg 到  assets 目录下


    import java.io.IOException;

    import android.media.AudioManager;
    import android.media.SoundPool;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.res.AssetFileDescriptor;
    import android.content.res.AssetManager;
    import android.view.Menu;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.TextView;

    public class MainActivity extends Activity implements OnTouchListener {
     SoundPool soundPool;
        int explosionId = -1;
        int explosionId1 = -1;
       
        int playFlag = 0;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            TextView textView = new TextView(this);
            textView.setOnTouchListener(this);
            setContentView(textView);

           
            setVolumeControlStream(AudioManager.STREAM_MUSIC);
            soundPool = new SoundPool(20, AudioManager.STREAM_MUSIC, 0);

            try {
                AssetManager assetManager = getAssets();
                AssetFileDescriptor descriptor = assetManager
                        .openFd("explosion.ogg");
                explosionId = soundPool.load(descriptor, 1);
               
                AssetFileDescriptor descriptor1 = assetManager
                        .openFd("coin.ogg");
                explosionId1 = soundPool.load(descriptor1, 1);
               
            } catch (IOException e) {
                textView.setText("Couldn't load sound effect from asset, "
                        + e.getMessage());
            }
        }

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {
                if (explosionId != -1) {
                 playFlag++;
                 if(playFlag %2 ==0)
                 {
                    soundPool.play(explosionId, 1, 1, 0, 0, 1);
                 }
                 else
                 {
                   soundPool.play(explosionId1, 1, 1, 0, 0, 1);
                 }
                 
                }
            }
            return true;
        }
    }

  • 相关阅读:
    用vbox搭建Linux服务器
    mysql数据库两表关联查询统计同一字段不同值的个数
    2019-06-16 Java学习日记之XML&tomcat
    2019-06-15 Java学习日记之mysql多表查询
    2019-06-14 Java学习日记之SQL
    2019-06-13 Java学习日记之MySql
    XML & Tomcat
    数据库的CRUD操作
    PrepareStatement
    Dao模式(data Access Object 数据访问对象)
  • 原文地址:https://www.cnblogs.com/xl711436/p/3060477.html
Copyright © 2011-2022 走看看