只能播放一次音频

时间:2020-08-06 11:16:01

标签: android-studio audio

我在Main Activity中有一个音频,每次我进入Main Activity时都会播放。我希望它只播放一次,无论您是否切换屏幕并回来!我希望他只在第一次进入主要活动时玩,而其他时候他不玩!

“''@SuppressLint(” SetTextI18n“) 私人void getTimeFromAndroid(){

    Calendar c = Calendar.getInstance();
    timeOfDay = c.get(Calendar.HOUR_OF_DAY);

    if(timeOfDay >= 0 && timeOfDay < 12) {
        setBrightness(brilhoManha + 155);
        saudacao.setText("BOM DIA, SEJA BEM-VINDO");

        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                if (!flag) {
                    play = MediaPlayer.create(MainActivity.this, R.raw.audiobomdia);
                    play.start();
                }
            }
        }, 2000);

    }else if(timeOfDay >= 12 && timeOfDay < 18){
        setBrightness(brilhoManha + 155);
        saudacao.setText("BOA TARDE, SEJA BEM-VINDO");
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                if (!flag) {
                    play = MediaPlayer.create(MainActivity.this, R.raw.audioboatarde);
                    viewPager = findViewById(R.id.main);
                }
            }
        }, 2000);
    }else if(timeOfDay >= 18 && timeOfDay < 24){
        saudacao.setText("BOA NOITE, SEJA BEM-VINDO");
        setBrightness(brilhoNoite + 60);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                if (!flag) {
                    play = MediaPlayer.create(MainActivity.this, R.raw.audioboanoite);
                    viewPager = findViewById(R.id.main);
                }
            }
        }, 2000);
    }else if(timeOfDay >= 0 && timeOfDay < 6){
        saudacao.setText("BOA NOITE, SEJA BEM-VINDO");
      setBrightness(brilhoNoite+60);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                if (!flag) {
                    play = MediaPlayer.create(MainActivity.this, R.raw.audioboanoite);
                    viewPager = findViewById(R.id.main);
                }
            }
        }, 2000);
    }
} '"

这是我在“主要活动”中的代码,用于播放音频,并根据时间显示问候消息。

1 个答案:

答案 0 :(得分:0)

编辑:

从MainActivity中删除public int status = 0。然后创建类G并添加public static int status = 0。必须是静态的:

public class G extends Application{
    
    public static int status = 0;
    public static SharedPreferences preferences;

    @Override
    public void onCreate() {
        super.onCreate();

        // if you want to not play even 
        // after exit from app, add these too
      
        preferences = PreferenceManager.getDefaultSharedPreferences(this);
        status = preferences.getInt("STATUS", 0);

       }

 }

然后添加 android:name="your package name.G"以显示在应用程序块中

像这样:

<application
android:name="your package name.G"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

然后将其添加到在MainActivity中播放音频的位置:

if(G.status==0) {
    //write codes to play audio
    G.status = 1;
}

如果您甚至不想从应用程序退出后也不玩游戏,请将此方法添加到onCreate MainActivity:

  @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
 if (keyCode == KeyEvent.KEYCODE_BACK) {

  preferences.edit().putInt("STATUS", G.status).apply();

 }

 return super.onKeyDown(keyCode, event);
}