0

正在开发一个应用程序,当用户触摸图像时播放声音。我创建自己的声音文件。在这种情况下,我有 3 个疑问,

  1. 我需要在哪个文件夹中放置声音文件。??

  2. 哪种方法适合播放声音..

  3. 我如何检测用户在图像上触摸的位置,因为当用户在不同位置触摸时我需要播放不同的声音。

希望你能理解我的想法......请帮助我......

public boolean onTouch(View v, MotionEvent event)
{
    touchEvent(event);
    return true;
}

private void touchEvent(MotionEvent event)
{


}
4

5 回答 5

1

1.您应该将声音文件放在/res/raw文件夹中。

2.使用以下代码播放声音

MediaPlayer mp = MediaPlayer.create(activity,R.raw.sound_file);
                 mp.start();

3. 附加一个TouchListener将允许您处理MotionEvent包含实际触摸位置的 ;只需执行以下操作

if(event.getX() < image.width / 2) { 
    // touch on left 
} else { 
    // touch on right;
}

您还可以通过添加更多逻辑来进一步优化您的触摸位置。

于 2013-03-29T10:28:25.897 回答
0

我需要在哪个文件夹中放置声音文件。??

raw folder如果 res 中不存在,则创建一个。

于 2013-03-29T10:26:36.863 回答
0

res/raw 文件夹中的声音文件

首先,获取 x 和 y 坐标,然后将您的条件设置为 onTouch 并尝试使用以下代码播放音乐

MediaPlayer mPlayer2;
mPlayer2= MediaPlayer.create(this, R.raw.music);
        mPlayer2.start();
于 2013-03-29T10:28:38.087 回答
0

In which folder i need to place sound file.??

通常文件(mp3、csv、pdf)文件放在Raw文件夹内。

Which method is suitable for playing sounds..

没有这么简单的方法。您需要使用MediaPlayer 类

how can i detect where the user touch on the image, because i need to play different sound when user touches at different places.

将 a 添加onClickEventListener到 ImageView 并从那里调用 MediaPlayer 实例。

于 2013-03-29T10:30:26.223 回答
0

我认为您可以使用 Event OnClick

    MediaPlayer song;
    image.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            song=MediaPlayer.create(this, R.raw.songname);
            song.start();
        }
    });
于 2014-09-12T04:04:49.190 回答