Как управлять программой мигания OpenGL - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу запустить программу, когда фон не мигает красным, а мигает только во время активного звука, когда он останавливается на черном цвете.В настоящее время всякий раз, когда я применяю метод паузы, он останавливается только при нажатии кнопки.Кроме того, программа начинает мигать, что является нет-нет.

    package com.boss.joke;

import android.graphics.Color;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.ColorDrawable;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.opengl.GLES20;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.google.android.gms.ads.MobileAds;

import javax.microedition.khronos.opengles.GL10;

public class MainActivity extends AppCompatActivity {
private AdView mAdView;
private InterstitialAd mInterstitialAd;
private static ImageView imgview;
private static Button buttonsbm;
private int current_image;
int[]images={R.drawable.but,R.drawable.nazi};
private OpenGLView openGLView;


  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    openGLView = (OpenGLView) findViewById(R.id.openGLView);
    buttonclick();
  }


@Override
public void onPause(){
    super.onPause();
    openGLView.onPause();
}
@Override
public void onResume(){
    super.onResume();
    openGLView.onResume();
}

public void buttonclick()
{
    imgview=(ImageView) findViewById(R.id.imageView10);
    buttonsbm=(Button)findViewById(R.id.play);
    setVolumeControlStream(AudioManager.STREAM_MUSIC);

    final MediaPlayer appMP = MediaPlayer.create(this, R.raw.app);

    Button play = (Button) this.findViewById(R.id.playfascist);

    play.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {
            current_image++;
            current_image=current_image%images.length;
            imgview.setImageResource(images[current_image]);
            appMP.start();





            //   mInterstitialAd.loadAd(new AdRequest.Builder().build());
         //   mInterstitialAd.isLoaded();
          /*  {
                try {
                    Thread.sleep(7500);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }*/
           // mInterstitialAd.show();

        }

    });


}

}

Пакет OpenGlView com.boss.fascist;

import android.content.Context;
import android.opengl.GLSurfaceView;
import android.util.AttributeSet;

import java.util.jar.Attributes;

public class OpenGLView extends GLSurfaceView {
public OpenGLView(Context context) {
    super(context);
    init();
}
public OpenGLView(Context context, AttributeSet attrs){
    super(context, attrs);
    init();
}
private void init(){
    setEGLContextClientVersion(2);
    setPreserveEGLContextOnPause(true);
    setRenderer(new OpenGLRenderer());

   }
   }

Пакет OpenGLRenderer com.boss.fascist;

import android.opengl.GLES20;
import android.opengl.GLSurfaceView;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

 public class OpenGLRenderer implements GLSurfaceView.Renderer {

    private double redValue =1f;
    private static final double FLASH_DURATION = 1000;



    @Override
    public void onSurfaceCreated(GL10 gl10, EGLConfig config) {
        // Set the background frame color
        GLES20.glClearColor((float) redValue, 0, 0, 1f);
    }
    @Override
    public void onSurfaceChanged(GL10 gl10, int i, int i1) {
    //GLES20.glViewport(0, 0, width, height);
  }

    @Override
    public void onDrawFrame(GL10 gl10) {
        GLES20.glClearColor((float) redValue, 0, 0, 1f);
        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
        // Redraw background color    redValue((Math.sin(System.currentTimeMillis()*1.5*Math.PI/FLASH_DURATION)*1)+1);
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...