SoundPool(查看API)(短暂的声音时使用,比如QQ提示音)
SoundPool(查看API)(短暂的声音时使用,例如QQ提示音)
主程序
package com.test.mysoundpoul;
import android.support.v7.app.ActionBarActivity;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.media.AudioAttributes;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore.Audio;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
@SuppressLint("NewApi")
public class MainActivity extends ActionBarActivity {
private Button mButtonSoundPool;
private SoundPool pool;
private int SoundId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//因为Load需要耗费时间,所以要提前加载。
SoundId = initPlaySound();
mButtonSoundPool = (Button) findViewById(R.id.button_sound_pool);
mButtonSoundPool.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
play();
}
});
}
public void play() {
pool.play(SoundId, 1, 1, 0, -1, 1);
}
@TargetApi(Build.VERSION_CODES.BASE)
public int initPlaySound() {
int version = android.os.Build.VERSION.SDK_INT;
if (version > 21) {
//不同版本用的创建对象方法不同
SoundPool.Builder builder = new SoundPool.Builder();
builder.setMaxStreams(2);
AudioAttributes.Builder attrBuilder = new AudioAttributes.Builder();
attrBuilder.setLegacyStreamType(AudioManager.STREAM_MUSIC);
builder.setAudioAttributes(attrBuilder.build());
pool = builder.build();
} else {
pool = new SoundPool(1024 * 10240, AudioManager.STREAM_MUSIC, 0);
}
return pool.load(getApplicationContext(), R.raw.gm, 1);
}
}
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<Button
android:id="@+id/button_sound_pool"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sound Pool" />
</LinearLayout>
版权声明:本文为博主原创文章,未经博主允许不得转载。