touch-event - 动态壁纸onTouchEvent ACTION_DOWN仅播放声音片段的1/3

标签 touch-event live-wallpaper audio

我刚刚制作了一个鱼缸动态壁纸,想在用户触摸移动的鱼时添加声音效果。不幸的是,我不知道如何制作,因为只播放了三分之一的声音片段。感谢一些专家的帮助。以下是我的代码:

@Override
public void onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {

Region region1 = new Region(image1x, image1y, image1x+image1.getWidth(),
image1y+image1.getHeight());


if(region1.contains((int)event.getX(), (int)event.getY()))
{image1x=(int) (event.getX()+60);   

MediaPlayer myplayer = MediaPlayer.create(getBaseContext(), R.raw.hi);
myplayer.setVolume(100, 100);

myplayer.start();               
}

Region region2 = new Region(image2x, image2y,
image2x+image2.getWidth(),image2y+image2.getHeight());

if(region2.contains((int)event.getX(), (int)event.getY()))
{

image2x=(int) (event.getX()-100);

} super.onTouchEvent(event);


  return;
}           

}
}

最佳答案

您不应该在on Touch方法中创建MediaPlayer,最好是声明一个MediaPlayer字段,并仅在WallpaperService onCreate()方法中创建一次,如下所示:

private MediaPlayer myPlayer;

@Override
public void onCreate() {
    super.onCreate();
    myPlayer = MediaPlayer.create(getApplicationContext(),
        R.raw.hi);                    
}

//然后在onTouch方法中启动声音:
@Override
public void onTouchEvent(MotionEvent event) {

// ...

myPlayer.start();
}

//应该可以工作,并且可以节省资源。

关于touch-event - 动态壁纸onTouchEvent ACTION_DOWN仅播放声音片段的1/3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521583/

相关文章:

android - 可以将动态壁纸设置为背景吗?

android - 如何在触摸位置附近显示自定义弹出窗口,就像我们使用 ContextMenu 时那样?

java - onTouch 方法 - 跟踪已单击或按下的按钮实例

Android:将捕获的视频设置为动态壁纸

java - 无法播放音频剪辑

android - 混合不同格式的Android音频文件

javascript - 如何用javascript在手机网页上录制音频和播放音乐?

javascript - Firefox、触摸事件和 "smooth"滚动行为——导致不滚动

ios - superview 的手势是否应该在 iOS 7 中取消 subview 的手势?

android - 如何在 LibGDx 中加载图像作为背景?