Commit a77d871434be71b44b6e20c27916936aded76550

Authored by 谷俊
1 parent 902b0957

修改播放状态判断逻辑

app/src/main/java/com/cnlive/demo/video/VideoStatusActivity.java
@@ -31,11 +31,13 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene @@ -31,11 +31,13 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene
31 private boolean isPlay = false; 31 private boolean isPlay = false;
32 //记录当前视频是否能播 32 //记录当前视频是否能播
33 private boolean canPlay = true; 33 private boolean canPlay = true;
  34 + //记录当前视频状态是否结束,结束后就不再播
  35 + protected boolean isStatusEnd = false;
34 36
35 @Override 37 @Override
36 protected void onCreate(Bundle savedInstanceState) { 38 protected void onCreate(Bundle savedInstanceState) {
37 super.onCreate(savedInstanceState); 39 super.onCreate(savedInstanceState);
38 - setContentView(R.layout.activity_videoview_status); 40 + setContentView(com.cnlive.libs.R.layout.activity_videoview_status);
39 41
40 initView(); 42 initView();
41 } 43 }
@@ -110,27 +112,34 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene @@ -110,27 +112,34 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene
110 switch (status) { 112 switch (status) {
111 case IVideoStatus.MEDIA_STATUS_LIVING: 113 case IVideoStatus.MEDIA_STATUS_LIVING:
112 //直播中' 114 //直播中'
113 - canPlay = true;  
114 - if (videoView != null && !videoView.getPlayState())  
115 - videoView.reload();  
116 - setStatusViewVisible(false, "");  
117 - Toast.makeText(VideoStatusActivity.this, "直播中", Toast.LENGTH_LONG).show(); 115 + if (!isStatusEnd) {
  116 + canPlay = true;
  117 + isPlay = true;
  118 + setPlayState(true);
  119 + setStatusViewVisible(false, "");
  120 + Toast.makeText(VideoStatusActivity.this, "直播中", Toast.LENGTH_LONG).show();
  121 + }
118 break; 122 break;
119 case IVideoStatus.MEDIA_STATUS_LEAVE: 123 case IVideoStatus.MEDIA_STATUS_LEAVE:
120 //主播暂时离开 124 //主播暂时离开
121 - canPlay = false;  
122 - if (videoView != null)  
123 - videoView.stop();  
124 - setStatusViewVisible(true, "主播暂时离开");  
125 - Toast.makeText(VideoStatusActivity.this, "主播暂时离开", Toast.LENGTH_LONG).show(); 125 + if (!isStatusEnd) {
  126 + canPlay = false;
  127 + isPlay = false;
  128 + setPlayState(false);
  129 + setStatusViewVisible(true, "主播暂时离开");
  130 + Toast.makeText(VideoStatusActivity.this, "主播暂时离开", Toast.LENGTH_LONG).show();
  131 + }
126 break; 132 break;
127 case IVideoStatus.MEDIA_STATUS_END: 133 case IVideoStatus.MEDIA_STATUS_END:
128 //直播结束 134 //直播结束
129 - canPlay = false;  
130 - if (videoView != null)  
131 - videoView.stop();  
132 - setStatusViewVisible(true, "直播已经结束");  
133 - Toast.makeText(VideoStatusActivity.this, "直播结束", Toast.LENGTH_LONG).show(); 135 + if (!isStatusEnd) {
  136 + canPlay = false;
  137 + isPlay = false;
  138 + isStatusEnd = true;
  139 + videoView.release();
  140 + setStatusViewVisible(true, "直播已经结束");
  141 + Toast.makeText(VideoStatusActivity.this, "直播结束", Toast.LENGTH_LONG).show();
  142 + }
134 break; 143 break;
135 } 144 }
136 145
@@ -139,7 +148,7 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene @@ -139,7 +148,7 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene
139 @Override 148 @Override
140 public void onError(int what, String extra) { 149 public void onError(int what, String extra) {
141 Log.e(TAG, "onError: " + what + "_" + extra); 150 Log.e(TAG, "onError: " + what + "_" + extra);
142 - Toast.makeText(VideoStatusActivity.this,"onError: " + what + "_" + extra,Toast.LENGTH_LONG).show(); 151 + Toast.makeText(VideoStatusActivity.this, "onError: " + what + "_" + extra, Toast.LENGTH_LONG).show();
143 } 152 }
144 }; 153 };
145 154
@@ -172,13 +181,13 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene @@ -172,13 +181,13 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene
172 } 181 }
173 182
174 private void initView() { 183 private void initView() {
175 - playBtn = (Button) findViewById(R.id.playerPlayPause); 184 + playBtn = (Button) findViewById(com.cnlive.libs.R.id.playerPlayPause);
176 playBtn.setOnClickListener(this); 185 playBtn.setOnClickListener(this);
177 186
178 - statusView = findViewById(R.id.statusView);  
179 - statusViewText = (TextView) findViewById(R.id.statusViewText); 187 + statusView = findViewById(com.cnlive.libs.R.id.statusView);
  188 + statusViewText = (TextView) findViewById(com.cnlive.libs.R.id.statusViewText);
180 189
181 - videoView = (VideoView) findViewById(R.id.videoview); 190 + videoView = (VideoView) findViewById(com.cnlive.libs.R.id.videoview);
182 videoView.setOnBufferingUpdateListener(mOnBufferingUpdateListener); 191 videoView.setOnBufferingUpdateListener(mOnBufferingUpdateListener);
183 videoView.setOnCompletionListener(mOnCompletionListener); 192 videoView.setOnCompletionListener(mOnCompletionListener);
184 videoView.setOnPreparedListener(mOnPrepareListener); 193 videoView.setOnPreparedListener(mOnPrepareListener);
@@ -223,7 +232,7 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene @@ -223,7 +232,7 @@ public class VideoStatusActivity extends Activity implements View.OnClickListene
223 @Override 232 @Override
224 public void onClick(View v) { 233 public void onClick(View v) {
225 switch (v.getId()) { 234 switch (v.getId()) {
226 - case R.id.playerPlayPause: 235 + case com.cnlive.libs.R.id.playerPlayPause:
227 if (videoView != null) { 236 if (videoView != null) {
228 isPlay = !isPlay; 237 isPlay = !isPlay;
229 setPlayState(isPlay); 238 setPlayState(isPlay);