Android 编程 - 如何从广播接收器播放 SoundPool 声音?
Posted
技术标签:
【中文标题】Android 编程 - 如何从广播接收器播放 SoundPool 声音?【英文标题】:Android Programming - How to play a SoundPool sound from a broadcastreceiver? 【发布时间】:2011-08-23 17:02:35 【问题描述】:我是 android 开发的新手,想知道如何在广播接收器中播放 SoundPool 声音?
我在某处读到使用 SoundPool 是播放声音的方式,但我不知道如何正确设置。
我的 Eclipse res\raw 文件夹中有一些声音文件,例如 wave 和 mp3 文件。我想播放一个名为 half.wav 的文件
您能否展示我需要放入广播接收器的示例代码?
这是代码的第一次尝试,但我确实收到一个错误,指出 soundID = soundPool.load(this, R.raw.half, 1);
“SoundPool 类型中的方法 Load(Context, Int, Int) 不适用...”
这是该类的代码:
package ChimeMe.BigBen;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import android.os.Bundle;
import android.media.AudioManager;
import android.media.SoundPool;
import android.media.SoundPool.OnLoadCompleteListener;
public class AlarmReceiver extends BroadcastReceiver
private SoundPool soundPool;
private int soundID;
boolean loaded = false;
@Override
public void onReceive(Context context, Intent intent)
try
// Load the sound
soundPool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener()
@Override
public void onLoadComplete(SoundPool soundPool, int sampleId,
int status)
loaded = true;
);
soundID = soundPool.load(this, R.raw.half, 1);
Toast.makeText(context, "This is the alarm.", Toast.LENGTH_SHORT)
.show();
catch (Exception e)
Toast.makeText(
context,
"There was an error somewhere, but we still received an alarm",
Toast.LENGTH_SHORT).show();
e.printStackTrace();
提前致谢。
真的, 埃马德
【问题讨论】:
【参考方案1】:如果您只想播放一种声音,我认为使用 MediaPlayer 会更快更容易...
这是我的一个应用程序的代码,该应用程序在此广播接收器运行时每 30 分钟播放一次哔声
public class Gameloop extends BroadcastReceiver
MediaPlayer mp = null;// Here
private static final String TAG = "VPET";
@Override
public void onReceive(Context context, Intent intent)
Log.d(TAG, "Loop running");
if (Pet.isAlive == true)
mp = MediaPlayer.create(context, R.raw.beep);//Onreceive gives you context
mp.start();// and this to play it
else
【讨论】:
感谢 Pheonix2105 提供编码示例。 :-)以上是关于Android 编程 - 如何从广播接收器播放 SoundPool 声音?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Android 中播放在线广播流 url。如何在 android 中播放 .pls 广播流 url