Воспроизвести аудио только один раз - PullRequest
0 голосов
/ 06 августа 2020

У меня есть звук в основном действии, и он воспроизводится каждый раз, когда я вхожу в основное действие. Я хочу, чтобы он играл только один раз, независимо от того, переключаешь ли ты экраны и возвращаешься! Я хочу, чтобы он играл только в первый раз, когда он входит в Основное действие, а в других случаях он равен нулю!

"'@SuppressLint (" SetTextI18n ") private void getTimeFrom Android () {

    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 голосов
/ 06 августа 2020

РЕДАКТИРОВАТЬ:

удалить public int status = 0 из MainActivity. затем создайте класс G и добавьте public static int status = 0. это должно быть stati c:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...