gpt4 book ai didi

java - 是否正在播放任何音频? (在安卓中)

转载 作者:行者123 更新时间:2023-12-03 01:52:38 24 4
gpt4 key购买 nike

我的应用程序中有两个 Activity ,第一个(MainActivity.java)有一个按钮来调用 Activity 二(player.java),第二个有音频和一个停止按钮。

所以我面临的主要问题是..

当我单击从一个开始第二个 Activity 时,它会转到另一个 Activity ,
当我编程时,它会自动启动音频(我希望它自动启动)我按下停止音频停止...然后再次返回 MainActivity 调用第二个 Activity (player.java)它工作正常...再次正确启动音频.. . 一切正常,当我按下回音时,音频继续播放……(这就是我想要的)

但是,如果在不停止音频的情况下按下并再次启动第二个 Activity (player.java),它会在不停止第一个 Activity 的情况下再次启动音频......并且同一轨道播放两次......

我想一次只播放一首轨道......如果正在播放任何其他音频,请在我再次开始该 Activity 时停止它。

这是我的代码...

MainActivity.java

package com.test.myapp;

import android.app.*;
import android.os.*;
import android.content.*;
import android.widget.*;
import android.view.*;

public class MainActivity extends Activity {
Button btn;

@Override
public void onCreate(Bundle savedIntanceState) {
super.onCreate(savedIntanceState);
setContentView(R.layout.activity_main);

btn = (Button) findViewById(R.id.button);

public void clicked(View v){
if (v.getId() == R.id.button){
Intent i = new Intent (MainActivity.this, player.class);
startActivity(i);
}
}
}
}

播放器.java
package com.test.myapp;

import android.app.*;
import android.os.*;
import android.content.*;
import android.widget.*;
import android.view.*;
import android.media.*;

public class player extends Activity {
Button stop;
MediaPlayer audio;

@Override
public void onCreate(Bundle savedIntanceState) {
super.onCreate(savedIntanceState);
setContentView(R.layout.player);

stop= (Button) findViewById(R.id.stop);
audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio);
audio.start();

public void stop(View v){
if (v.getId() == R.id.stop){
audio.stop();
audio = MediaPlayer.create(getBaseContext(), R.raw.myAudio);
}
}
}
}

最佳答案

使您的 MediaPlayer 对象静态并检查 Mediaplayer isPlaying()。尝试

public class player extends Activity {
Button stop;
static MediaPlayer audio;

@Override
public void onCreate(Bundle savedIntanceState) {
super.onCreate(savedIntanceState);
setContentView(R.layout.activity_player);

stop = (Button) findViewById(R.id.stop);
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
audio.stop();
}
});

if(audio == null) {
audio = MediaPlayer.create(getBaseContext(), R.raw.myaudio);
audio.start();
} else {
if(audio.isPlaying()) {
audio.stop();
audio = MediaPlayer.create(getBaseContext(), R.raw.myaudio);
audio.start();
} else {
audio = MediaPlayer.create(getBaseContext(), R.raw.myaudio);
audio.start();
}
}
}

}

关于java - 是否正在播放任何音频? (在安卓中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38353787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com