【问题标题】:Want to attach android MediaPlayer to an invisible button想要将 android MediaPlayer 附加到一个不可见的按钮
【发布时间】:2017-08-02 22:40:53
【问题描述】:

首先,我创建了一个简单的程序,当您单击按钮时播放媒体。

在我的主要活动课程中,我有:

 MediaPlayer mySound;    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mySound = MediaPlayer.create(this, R.raw.sleepnk);
    }

然后我创建了以下内容:

public void playMusic(View view)
    {
        mySound.start();
    }

然后在我的 XML 文件中我创建了一个按钮并添加了:

android:onClick="playMusic"

现在我正在尝试将媒体添加到应用程序,但它没有类似的内容:

<Button
        android:id="@+id/button"
        .

我的目标是在这个新应用程序的这个“点击开始”不可见按钮中添加一个媒体文件,但由于 xml 文件中没有按钮,我不知道在哪里将我的 playMusic 方法附加到点击开始按钮。我包括了点击开始按钮的实例,以便您可以看到它是如何充当按钮的-

values文件夹下有一个strings.xml,其中包含:

<?xml version="1.0" encoding="utf-8"?>

<string name="app_name">Panoramik</string>
<string name="instruction_tap_start">Tap to start</string>

然后在 MainActivity.java 文件中我们有:

private View.OnClickListener mCameraOnClickListener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mIsCapturing) {
                //clear the flag to prevent the screen of being on
                getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

                if (mDMDCapture.finishShooting()) {
                    mIsStitching = true;
                    mTextViewInstruction.setVisibility(View.INVISIBLE);
                }
                mIsCapturing = false;
                setInstructionMessage(R.string.instruction_tap_start);

我还包括“setInstructionMessage”方法的代码:

private void setInstructionMessage(int msgID)
{
    if (mCurrentInstructionMessageID == msgID)
        return;

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(mDisplayMetrics.widthPixels, RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL);

    if (msgID == R.string.instruction_empty || msgID == R.string.instruction_hold_vertically || msgID == R.string.instruction_tap_start
            || msgID == R.string.instruction_focusing) {
        params.addRule(RelativeLayout.CENTER_VERTICAL);
    } else {
        params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    }

    mTextViewInstruction.setLayoutParams(params);
    mTextViewInstruction.setText(msgID);
    mCurrentInstructionMessageID = msgID;
}

谁能告诉我如何将我的媒体文件 sleepnk 附加到点击开始隐形按钮?

编辑:我基本上希望应用程序说“点击开始”,因为该应用程序是为视障人士创建的。因此,如果有任何其他建议让该应用与用户对话,请随时发表评论

【问题讨论】:

    标签: java xml android-studio button android-mediaplayer


    【解决方案1】:

    您应该让操作系统和 TalkBack 读取“android:contentDescription”属性,方法是将字符串“Tap to Start”分配给您希望用户触摸的任何内容。 (请记住使用字符串资源,以便对其进行翻译/本地化。)

    【讨论】:

      猜你喜欢
      • 2016-11-07
      • 2019-10-06
      • 2021-09-16
      • 1970-01-01
      • 2015-08-17
      • 2019-04-03
      • 1970-01-01
      • 2020-08-02
      • 2017-06-07
      相关资源
      最近更新 更多