我在我的Android应用程序中使用SoundPool
。
在SoundPool
中传递以下参数。
spool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
有时它会在调整音量时在android Rooted设备中发出此异常。
这是我用来播放声音的课程。我在初始化Music_Manager类时调用getInstance()
方法'实例并在该类中使用该实例中的方法。
public class Music_Manager {
private SoundPool spool;
Context mcontext;
int s1, s2, s3;
static Music_Manager instance;
public static Music_Manager getInstance() {
if (instance == null) {
instance = new Music_Manager();
}
return instance;
}
Music_Manager() {
try {
spool = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
s1 = spool.load(mcontext, R.raw.s1, 1);
s2 = spool.load(mcontext, R.raw.s2, 1);
s3 = spool.load(mcontext, R.raw.s3, 1);
}catch (UnsatisfiedLinkError e) {
// TODO: handle exception
}
catch (Exception e) {
// TODO: handle exception
}
}
public void playS1() {
try {
spool.play(s1, 100, 100, 1, 0, 1);
} catch (Exception e) {
// TODO: handle exception
}
}
public void playS2() {
try {
spool.play(s2, 100, 100, 1, 0, 1);
} catch (Exception e) {
// TODO: handle exception
}
}
public void playS3() {
try {
spool.play(s3, 100, 100, 1, 0, 1);
} catch (Exception e) {
// TODO: handle exception
}
}
public void release() {
try
{
if (spool != null)
spool.release();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
例外:
致命异常:java.lang.IllegalArgumentException:错误的流类型 -100 在android.os.Parcel.readException(Parcel.java:1469) 在android.os.Parcel.readException(Parcel.java:1419) 在android.media.IAudioService $ Stub $ Proxy.adjustSuggestedStreamVolume(IAudioService.java:936) 在android.media.AudioManager.adjustSuggestedStreamVolume(AudioManager.java:658) 在android.media.AudioManager.handleKeyDown(AudioManager.java:527) 在com.android.internal.policy.impl.PhoneWindow.onKeyDown(PhoneWindow.java:1563) 在com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchKeyEvent(PhoneWindow.java:1969) 在android.view.ViewRootImpl $ ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:3852) 在android.view.ViewRootImpl $ ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826) 在android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:3399) 在android.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:3449) 在android.view.ViewRootImpl $ InputStage.forward(ViewRootImpl.java:3418) 在android.view.ViewRootImpl $ AsyncInputStage.forward(ViewRootImpl.java:3525) 在android.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:3426) 在android.view.ViewRootImpl $ AsyncInputStage.apply(ViewRootImpl.java:3582) 在android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:3399) 在android.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:3449) 在android.view.ViewRootImpl $ InputStage.forward(ViewRootImpl.java:3418) 在android.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:3426) 在android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:3399) 在android.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:3449) 在android.view.ViewRootImpl $ InputStage.forward(ViewRootImpl.java:3418) 在android.view.ViewRootImpl $ AsyncInputStage.forward(ViewRootImpl.java:3525) 在android.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:3426) 在android.view.ViewRootImpl $ AsyncInputStage.apply(ViewRootImpl.java:3582) 在android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:3399) 在android.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:3449) 在android.view.ViewRootImpl $ InputStage.forward(ViewRootImpl.java:3418) 在android.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:3426) 在android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:3399) 在android.view.ViewRootImpl $ InputStage.onDeliverToNext(ViewRootImpl.java:3449) 在android.view.ViewRootImpl $ InputStage.forward(ViewRootImpl.java:3418) 在android.view.ViewRootImpl $ AsyncInputStage.forward(ViewRootImpl.java:3525) 在android.view.ViewRootImpl $ InputStage.apply(ViewRootImpl.java:3426) 在android.view.ViewRootImpl $ AsyncInputStage.apply(ViewRootImpl.java:3582) 在android.view.ViewRootImpl $ InputStage.deliver(ViewRootImpl.java:3399) 在android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5602) 在android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5582) 在android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5553) 在android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5682) 在android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185) 在android.os.MessageQueue.nativePollOnce(MessageQueue.java) 在android.os.MessageQueue.next(MessageQueue.java:138) 在android.os.Looper.loop(Looper.java:123) 在android.app.ActivityThread.main(ActivityThread.java:5021) at java.lang.reflect.Method.invokeNative(Method.java) 在java.lang.reflect.Method.invoke(Method.java:515) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:827) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) 在dalvik.system.NativeStart.main(NativeStart.java)