触摸屏幕时如何播放声音?

时间:2019-05-23 12:06:38

标签: java android

我正在尝试制作一个飞扬的鸟状游戏。但是,我一直在努力寻找一种方法,只要触摸屏幕就可以播放流行音乐。

我希望它在每次触摸屏幕时都能播放声音。我是Android和Android Studio的新手,并且我非常了解Java。如您所见,我是新手。

我尝试制作一个MediaPlayer,但我不知道如何在触摸屏幕时播放它。

2 个答案:

答案 0 :(得分:1)

结合使用<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="modal-container" role="dialog"> <div class="modal-inner" role="document"> <div class="modal-content"> <div class="modal-body"> <button class="button jq-button-ok">OK</button> <button class="button jq-button-cancel">Cancel</button> </div> </div> </div> </div>SoundPool。在您的OnTouchListener方法中,您只需做一个onTouch(..)

例如:

SoundPool.play(YOURAUDIOFILE, 1, 1, 1, 0, 1);下创建一个名为raw的文件夹。然后将您的铃声粘贴到该文件夹​​中,例如your_app/res/。现在使用以下代码:

your_app/res/ringtone.mp3

// soundId供以后重用

SoundPool soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0); int soundId = soundPool.load(context, R.raw.ringtone, 1);

使用后,请确保释放SoundPool资源:

soundPool.play(soundId, 1, 1, 0, 0, 1);

答案 1 :(得分:0)

您好,欢迎来到Stackoverflow

要检测触摸事件,首先必须创建一个TouchWrapper类,您可以尝试更多事件,但是请确保将对您有帮助,只需将println替换为您想要播放的声音即可

class TouchableWrapper(context: Context) : FrameLayout(context) {
    override fun dispatchTouchEvent(event: MotionEvent): Boolean {
        when (event.action) {
            MotionEvent.ACTION_DOWN -> println("Moved")
            MotionEvent.ACTION_SCROLL -> println("Scrolled")
        }
        return super.dispatchTouchEvent(event)
    }
}

创建后,在布局文件中,将整个视图包装在FrameLayout中

<FrameLayout
        android:id="@+id/frameMap"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toTopOf="parent">

            <fragment
                android:id="@+id/map"
                android:name="com.google.android.gms.maps.SupportMapFragment"
                android:layout_width="match_parent"
                android:layout_height="match_parent"/>
</FrameLayout>

最后在您的课堂上,只需发送此

var mTouchView: TouchableWrapper? = null
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    val frameLayout = FrameLayout(context)
    Fonty.Companion.setFonts(container)
    populateViewForOrientation(inflater, frameLayout)
    mTouchView = TouchableWrapper(this.context!!)
    mTouchView!!.addView(frameLayout)
    return mTouchView
}