zoukankan      html  css  js  c++  java
  • Android声音播放实例代码

    布局文件:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.example.ch_2013_4_9playsound"
     4     android:versionCode="1"
     5     android:versionName="1.0" >
     6 
     7     <uses-sdk
     8         android:minSdkVersion="8"
     9         android:targetSdkVersion="17" />
    10 
    11     <application
    12         android:allowBackup="true"
    13         android:icon="@drawable/ic_launcher"
    14         android:label="@string/app_name"
    15         android:theme="@style/AppTheme" >
    16         <activity
    17             android:name="com.example.ch_2013_4_9playsound.MainActivity"
    18             android:label="@string/app_name" >
    19             <intent-filter>
    20                 <action android:name="android.intent.action.MAIN" />
    21 
    22                 <category android:name="android.intent.category.LAUNCHER" />
    23             </intent-filter>
    24         </activity>
    25     </application>
    26 
    27 </manifest>

    Activity:

     1 package com.example.ch_2013_4_9playsound;
     2 
     3 import java.util.HashMap;
     4 
     5 import android.media.AudioManager;
     6 import android.media.SoundPool;
     7 import android.os.Bundle;
     8 import android.annotation.SuppressLint;
     9 import android.app.Activity;
    10 import android.content.Context;
    11 import android.view.Menu;
    12 import android.view.View;
    13 import android.view.View.OnClickListener;
    14 import android.widget.Button;
    15 import android.widget.Toast;
    16 
    17 @SuppressLint("UseSparseArrays")
    18 public class MainActivity extends Activity implements OnClickListener {
    19 
    20     Button btn_play;
    21     Button btn_play1;
    22     Button btn_stop;
    23     Button btn_stop1;
    24 
    25     SoundPool sp;
    26     HashMap<Integer, Integer> spMap;
    27 
    28     @Override
    29     protected void onCreate(Bundle savedInstanceState) {
    30         super.onCreate(savedInstanceState);
    31         setContentView(R.layout.activity_main);
    32         
    33         InitSound();
    34         Init();
    35     }
    36 
    37     @Override
    38     public boolean onCreateOptionsMenu(Menu menu) {
    39         // Inflate the menu; this adds items to the action bar if it is present.
    40         getMenuInflater().inflate(R.menu.main, menu);
    41         return true;
    42     }
    43         //http://www.cnblogs.com/sosoft/
    44 
    45     public void Init() {
    46         btn_play = (Button) findViewById(R.id.btn_play);
    47         btn_play1 = (Button) findViewById(R.id.btn_play1);
    48         btn_stop = (Button) findViewById(R.id.btn_stop);
    49         btn_stop1 = (Button) findViewById(R.id.btn_stop1);
    50         
    51         btn_play.setOnClickListener(this);
    52         btn_play1.setOnClickListener(this);
    53         btn_stop.setOnClickListener(this);
    54         btn_stop1.setOnClickListener(this);
    55     }
    56 
    57     public void InitSound() {
    58         sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
    59         spMap = new HashMap<Integer, Integer>();
    60         spMap.put(1, sp.load(this, R.raw.fire, 1));
    61         spMap.put(2, sp.load(this, R.raw.hit, 1));
    62 
    63     }
    64 
    65     public void playSound(int sound, int number) {
    66         AudioManager am = (AudioManager) this
    67                 .getSystemService(Context.AUDIO_SERVICE);
    68         float audioMaxVolumn = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    69         float volumnCurrent = am.getStreamVolume(AudioManager.STREAM_MUSIC);
    70         float volumnRatio = volumnCurrent / audioMaxVolumn;
    71 
    72         sp.play(spMap.get(sound), volumnRatio, volumnRatio, 1, number,  1f);
    73     }
    74 
    75     @Override
    76     public void onClick(View v) {
    77         // TODO Auto-generated method stub
    78         if (v == btn_play) {
    79             playSound(1, 0);
    80             Toast.makeText(this, "play1", Toast.LENGTH_SHORT).show();
    81         }
    82         if (v == btn_play1) {
    83             playSound(2, 1);
    84             Toast.makeText(this, "play2", Toast.LENGTH_SHORT).show();
    85         }
    86         if (v == btn_stop) {
    87             sp.pause(spMap.get(1));
    88             Toast.makeText(this, "stop", Toast.LENGTH_SHORT).show();
    89         }
    90         if (v == btn_stop1) {
    91             sp.pause(spMap.get(2));
    92             Toast.makeText(this, "stop1", Toast.LENGTH_SHORT).show();
    93         }
    94     }
    95 
    96 }
  • 相关阅读:
    信息竞赛日志
    Lesson0423
    考试总结
    2020省队选拔前(4.13-5.31)计划
    mvcc浅析
    浅谈cgi和fastcgi
    mysql事务
    mysql慢sql优化总结
    简述缓存击穿 / 缓存雪崩 / 缓存穿透 以及各自的解决方案
    PHP的异常处理机制浅析
  • 原文地址:https://www.cnblogs.com/sosoft/p/3518919.html
Copyright © 2011-2022 走看看