当前位置: 首页 > 知识库问答 >
问题:

方向切换后播放声音文件“Android Studio”

戚成礼
2023-03-14

我的程序应该播放打喷嚏和擤鼻涕的声音。如果点击了打喷嚏声音的按钮,它就会被播放。在此之后,如果设备得到旋转,它应该播放鼻涕声音(反之亦然,为鼻涕按钮)。我一直在尝试使用onSaveInstance和onRestoreInstance,但它们都不起作用。我漏了什么吗?

下面是我目前在主activity上的代码:

package com.example.togglemediaplayer;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final MediaPlayer sneezeSound = MediaPlayer.create(this, R.raw.sneeze2);
        final MediaPlayer blowSound = MediaPlayer.create(this, R.raw.blow_nose);

        Button sneeze = (Button) this.findViewById(R.id.sneezeButton);
        sneeze.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                sneezeSound.start();
            }
        });

        Button blow = (Button) this.findViewById(R.id.blowButton);
        blow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                blowSound.start();
            }
        });

    }
}

我还在清单文件android:configchanges=“orientationscreensize”中添加了配置更改

共有1个答案

郑和泰
2023-03-14

您可以在此方法中捕获rotate事件

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
    }
}
 类似资料:
  • 播放(播放音效/播放录音)

  • 我正在试着扮演一个角色。wav文件每次按下鼠标时,程序都会正常启动,但当我点击精灵时,我发现一个错误,有人知道是什么问题吗?我正在使用IntelliJ,SDK 15 这是我试图播放声音的部分 我得到这个错误:

  • 问题内容: 我正在用Java 做辫子。如果倒带时间,声音会向后播放。如何向后播放WAV文件?也许有像这样的流?在Braid网站上,您可以看到我的意思。 更新: _ 解决! 看到我自己的帖子。_ 问题答案: !!!!!! 我自己解决了这个问题(14岁!!), 我写了这个课: 然后:

  • 播放视频,当应用程序转到后台时,它应继续播放音频,当我重新打开时,它应恢复有关我们在音频中的位置的视频。 我在一个服务中使用exoplayer,我可以在后台播放音频,但当我对视频执行相同操作时,音频正在播放,但当我回到应用程序时,视频只是一个黑屏,如果我再次重复(转到后台并回到应用程序)该步骤,它将继续播放视频。 据我所知,exoplayer正在缓冲下一帧,播放器视图无法一次渲染所有帧。 我有一个

  • 我在许多论坛和YouTube教程中搜索了一些简单的代码来播放声音文件(.mp3),但我找到的所有内容都不适合我。 我总是收到异常,它找不到文件或其他错误,但它总是以异常结束。 有什么我必须先配置的吗? -编辑- 我再次尝试以下代码来显示我得到的解释: 这是我的代码 添加JFXPanel后,我得到了异常:线程“main”中的异常MEDIA Exception:MEDIA _ UNAVAILABLE

  • 问题内容: 我正在尝试使用pygame播放声音文件(.wav),但是当我启动它时却听不到任何声音。 这是代码: 我也尝试使用频道,但结果是一样的 问题答案: 您的代码在我的机器上可以正常运行(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)。您正在使用哪些OS,Python和pygame版本?您是否可以通过其他方式(例如,在Mac的终端上或在Windows控制台上,然