package com.joyplus; import java.io.File; import android.media.MediaPlayer; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.VideoView; import com.joyplus.ad.AdvertManager; import com.joyplus.tvhelper.R; import com.joyplus.tvhelper.utils.Constant; import com.joyplus.tvhelper.utils.Log; public class JoyplusMediaPlayerAd implements MediaPlayer.OnCompletionListener, MediaPlayer.OnPreparedListener{ private String TAG = "JoyplusMediaPlayerAd"; private JoyplusMediaPlayerActivity mActivity; private VideoView mAdVideoView; private RelativeLayout mLayout; private TextView mTime; private long Time = 16*1000; private final static long MAXTIME = 16*1000; private AdvertManager mManager; enum ADSTATE{ NOAD , PREPARE , PLAYING , FINISH }; private ADSTATE mAdState; public void setAdState(ADSTATE adstate){ mAdState = adstate; } public ADSTATE getAdState(){ return mAdState; } public JoyplusMediaPlayerAd(JoyplusMediaPlayerActivity activity){ mActivity = activity; mAdState = ADSTATE.NOAD; mAdVideoView = (VideoView) mActivity.findViewById(R.id.joyplusmediaplayer_advideoView); mAdVideoView.setOnCompletionListener(this); mAdVideoView.setOnPreparedListener(this); mLayout = (RelativeLayout) mActivity.findViewById(R.id.joyplusmediaplayer_advideoView_layout); mTime = (TextView) mActivity.findViewById(R.id.joyplusmediaplayer_advideoView_time); try { //mManager = new AdvertManager(mActivity, getPUBLISHERID(), true); mManager = new AdvertManager(mActivity, Constant.PLAYERPACH_ADV_PUBLISHERID, true); } catch (Exception e) { // TODO Auto-generated catch block mManager = null; e.printStackTrace(); } UpdateAd(); } public void UpdateAd() { // TODO Auto-generated method stub Log.i(TAG," UpdateAd()"); new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub if(mManager != null){ mManager.UpdateAdvert(); } }} ).start(); } public boolean isPlaying(){ return mLayout.getVisibility()==View.VISIBLE; } public void startAD(){ // mAdState = ADSTATE.PLAYING; // if(!CheckAdFile())return; // mLayout.setVisibility(View.VISIBLE); // Time = MAXTIME; // mAdVideoView.setVideoPath(getPlayerUri()); // mAdState = ADSTATE.PREPARE; // new Thread(new Runnable(){ // @Override // public void run() { // // TODO Auto-generated method stub // ADWait(); // if(mManager != null){ // mManager.ReportCount(); // } // } // }).start(); } private void ADWait(){ long time1 ; long time2 ; while(mAdState != ADSTATE.FINISH){ try { time1 = System.currentTimeMillis(); Thread.sleep(500); time2 = System.currentTimeMillis(); Time -=(time2-time1); CheckTime(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } mActivity.runOnUiThread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub mLayout.setVisibility(View.GONE); } }); } private void CheckTime() { // TODO Auto-generated method stub if((Time<=0 && mAdState != ADSTATE.FINISH) ||(mActivity.StateOk && mAdState != ADSTATE.FINISH)){ mAdVideoView.stopPlayback(); mAdState = ADSTATE.FINISH; } if(Time<0)Time = 0; mActivity.runOnUiThread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub mTime.setText(String.valueOf(Time/1000)); } }); } private boolean CheckAdFile(){ if(mManager == null)return false; String uri = getPlayerUri(); Log.d(TAG,"CheckAdFile() "+uri); if(uri == null)return false; File ad = new File(uri); if(ad.exists() && ad.canRead())return true; mAdState = ADSTATE.NOAD; return false; } public String getPlayerUri(){ if(mManager == null)return null; return mManager.getPlayUri(); } @Override public void onCompletion(MediaPlayer mp) { // TODO Auto-generated method stub mAdState = ADSTATE.FINISH; } @Override public void onPrepared(MediaPlayer mp) { // TODO Auto-generated method stub mAdVideoView.start(); mAdState = ADSTATE.PLAYING; } }