设置启用的时候加上 mAudioManagerloadSoundEffects(); 关闭按键音的时候加上mAudioManagerunloadSoundEffects(); 应该就可以了。
提供下参考 有这么几个类AudioManager SoundPool。
我提供一段我们项目中的代码,各作用其余的你自己相关搜索下
/
播放音效
/
@TargetApi(8)
public static void PlaySoundEffect(final SeekerActivity activity, int wavid){
final SoundPool sp = new SoundPool(20, AudioManagerSTREAM_MUSIC, 100);
spload(activity, wavid ,1);
spsetOnLoadCompleteListener(new OnLoadCompleteListener() {
public void onLoadComplete(SoundPool soundPool, int sampleId, int status) {
AudioManager am = (AudioManager)activitygetSystemService(ContextAUDIO_SERVICE);
float streamVolumeCurrent = amgetStreamVolume(AudioManagerSTREAM_MUSIC);
float streamVolumeMax = amgetStreamMaxVolume(AudioManagerSTREAM_MUSIC);
float volume = streamVolumeCurrent/streamVolumeMax;
spplay(1, volume, volume, 0, 0, 1);
}
}
wavid为你对应的音效资源id,play()方法调用时设置音量大小。
方法有很多,不限于这一个。
首先如果要在 *** 作系统上实现,那么一定要有 *** 作系统的源码(是linux系统吗),至少要有驱动的源码,在你这里至少需要触摸屏驱动的源码。不过对于目前你的要求似乎不需要在 *** 作系统的级别上实现,在应用层就可以实现,只要应用层可以捕捉到触摸屏点击当前的坐标就可以执行你想要的 *** 作,另外,你说的改变颜色深浅应该指的是显示屏的颜色吧,也就是说,如果你要修该得是显示屏的颜色深浅,这和触摸屏是不同的驱动,因此还是建议你考虑一下做到应用层不知道你是要知道“怎么模拟按钮的点击事件”还是要知道“这个东西是怎么调上来的”?1、模拟点击事件,可以用调用Button的onClick的方法。
2、这个点击事件是触到屏幕后,触摸屏驱动首先得到这个消息,然后根据WindowManager里面记录的信息分发给ViewRoot,然后就一直发,就像生活委员发信件一样,最终发给那个被点击的View,没人处理就报废。你是不是发现,如果要实现触屏的话,要么在触摸屏那里动刀,拆开 FPC 一堆麻烦事。在目前 Windows 10 IoT Core 系统中,还是没法直接驱动触摸屏的,而不像树莓派的Linux系统那样直接可以使用。其实,你只要为每个 UWP 程序增加一个关于触摸屏驱动的代码,你就能控制了。当然,我这里完成的只是一小部分,更多的是需要大家一起讨论分享。
如果你也遇到这样的烦恼,不妨我们一起来研究更加简单方便的实现触摸屏控制,以脱离键盘鼠标的控制。
触摸屏类型:5英寸800x480 LCD电阻式触摸显示屏这个并不是很难!难的是路径选取设计。也就是的移动路径。这样才有移动效果。
随便写一些代码,你参考一下,这是一个跳动的!
终止代码就不能给你写了,写出来,你怎么进步!估计终止代码对你来说是小case!
页面上就一个 checkbox,timer,picturebox 这个装,人物,变化的动作等。
塔防类游戏 基本都是 指定路径移动,比如植物大战僵尸!移动快慢都是 设置timer
时间间隔!
public partial class Form2 : Form
{
//路径数据,自己构造
Dictionary<int, Point> pathCol = new Dictionary<int, Point>
{
{0,new Point(1,5)},
{1,new Point(1,2)},
{2,new Point(2,4)},
{3,new Point(5,26)},
{4,new Point(7,8)},
{5,new Point(3,5)},
{6,new Point(13,6)},
{7,new Point(13,2)},
{8,new Point(1,2)},
};
//key索引
int t = 0;
private void timer1_Tick(object sender, EventArgs e)
{
thispictureBox1Location = pathCol[t++ % 8] ;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
timer1Enabled = checkBox1Checked;
}
public Form2()
{
InitializeComponent();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)