简体   繁体   English

选项卡式活动中的Android声音

[英]Android Sound in Tabbed Activity

I have an app with 6 tabs. 我有一个带有6个标签的应用。 I followed this tutorial: https://youtu.be/00LLd7qr9sA . 我遵循了本教程: https : //youtu.be/00LLd7qr9sA The tab XML files contain a scrollview and some buttons. 选项卡XML文件包含一个滚动视图和一些按钮。

I need to make a few of those buttons to make a sound when pressed. 我需要按一下其中几个按钮才能发出声音。 I can't seem to use an onClickListener and neither can I just make a function that I can call from the XML file. 我似乎无法使用onClickListener,也无法创建可以从XML文件调用的函数。 Can anyone tell me what to put in here: 谁能告诉我在这里输入什么:

package com.ggblbl.soundsintabs;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class Tab4 extends Fragment {

    MediaPlayer mediaPlayer;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab4makesounds, container, false);
        }
}

try this 尝试这个

        tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            vibe.vibrate(100);

         // add your sound here
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });

Try following code to add click listener to buttons in the fragment and play sound file. 尝试使用以下代码将Click侦听器添加到片段中的按钮并播放声音文件。

    MediaPlayer mediaPlayer;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab4makesounds, container, false);
        Button btnOne = (Button) view.findViewById(R.id.YourButtonId);

       btnOne.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                  if(mediaPlayer != null) {
                     mediaPlayer.stop();
                     mediaPlayer.release();
                     mediaPlayer = null;
                  }

                  mediaPlayer = MediaPlayer.create(getActivity(), R.raw.your_sound);
                  mediaPlayer.start();
            }
        });
        return view;
    }
}

I am assuming that your sound file is in res/raw/ folder 我假设您的声音文件位于res / raw /文件夹中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM