【问题标题】:Android Sound in Tabbed Activity选项卡式活动中的 Android 声音
【发布时间】:2017-07-10 22:07:16
【问题描述】:

我有一个有 6 个标签的应用。我遵循了本教程:https://youtu.be/00LLd7qr9sA。 选项卡 XML 文件包含一个滚动视图和一些按钮。

我需要制作几个这样的按钮才能在按下时发出声音。我似乎不能使用 onClickListener,也不能只创建一个可以从 XML 文件调用的函数。谁能告诉我在这里放什么:

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);
        }
}

【问题讨论】:

  • 你能发布你的主要活动的代码吗?
  • 在我链接的教程中。

标签: java android audio tabs android-tablayout


【解决方案1】:

尝试以下代码为片段中的按钮添加点击侦听器并播放声音文件。

    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;
    }
}

我假设您的声音文件位于 res/raw/ 文件夹中

【讨论】:

    【解决方案2】:

    试试这个

            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) {
    
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多