Android声音播放实例代码
16lz
2021-01-23
布局文件:
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 <application12 android:allowBackup="true"13 android:icon="@drawable/ic_launcher"14 android:label="@string/app_name"15 android:theme="@style/AppTheme" >16 <activity17 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 @Override29 protected void onCreate(Bundle savedInstanceState) {30 super.onCreate(savedInstanceState);31 setContentView(R.layout.activity_main);32 33 InitSound();34 Init();35 }36 37 @Override38 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) this67 .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 @Override76 public void onClick(View v) {77 // TODO Auto-generated method stub78 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 }
更多相关文章
- 【Android】配置文件属性说明
- 在sd卡存储文件
- Android 解决布局问题
- 读取raw文件下文件内容
- android卡片布局CardView
- AndroidのUI布局之layout weight
- Android_布局属性大全