package com.pan.simplepicture.activity;
import in.srain.cube.image.CubeImageView;
import in.srain.cube.image.ImageLoader;
import in.srain.cube.image.ImageLoaderFactory;
import in.srain.cube.image.impl.DefaultImageLoadHandler;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.Process;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVObject;
import com.avos.avoscloud.SaveCallback;
import com.baidu.cyberplayer.core.BVideoView;
import com.baidu.cyberplayer.core.BVideoView.OnCompletionListener;
import com.baidu.cyberplayer.core.BVideoView.OnErrorListener;
import com.baidu.cyberplayer.core.BVideoView.OnInfoListener;
import com.baidu.cyberplayer.core.BVideoView.OnPlayingBufferCacheListener;
import com.baidu.cyberplayer.core.BVideoView.OnPreparedListener;
import com.pan.simplepicture.ConstantValue;
import com.pan.simplepicture.R;
import com.pan.simplepicture.been.Comment;
import com.pan.simplepicture.been.ShortVideo;
import com.pan.simplepicture.been.User;
import com.pan.simplepicture.http.protocol.PlayAddressProtocol;
import com.pan.simplepicture.utils.AppUtils;
import com.pan.simplepicture.utils.MapUtil;
import com.pan.simplepicture.utils.SharedPreferencesUtils;
import com.pan.simplepicture.widget.AlertDialog;
import com.pan.simplepicture.widget.CommentLinearLayout;
import com.pan.simplepicture.widget.MeterailEditText;
import com.pan.simplepicture.widget.ShareDialog;
import com.pan.simplepicture.widget.ShareDialog.OnShareDataListener;
import com.romainpiel.shimmer.Shimmer;
import com.romainpiel.shimmer.ShimmerTextView;
import com.umeng.socialize.controller.UMSocialService;
import com.umeng.socialize.media.UMVideo;
import com.umeng.socialize.sso.UMSsoHandler;
/**
* 播放页
* @author pan
*
*/
public class PlayActivity extends BaseActivity implements OnPreparedListener,
OnCompletionListener, OnErrorListener, OnInfoListener,
OnPlayingBufferCacheListener {
private final String TAG = "VideoViewPlayingActivity";
private ShortVideo shortVideo;
private ArrayList<Comment> list = new ArrayList<Comment>();;
private boolean cache = true;
private final int LIMIT = 5;
@Override
protected void init() {
shortVideo = (ShortVideo) getIntent()
.getSerializableExtra("shortVideo");
}
@Override
protected void initView() {
setContentView(R.layout.activity_play);
loader = ImageLoaderFactory.create(this);
DefaultImageLoadHandler defaultImageHandler = new DefaultImageLoadHandler(
this);
defaultImageHandler.setImageFadeIn(true);
defaultImageHandler.setImageRounded(true, dip2px(45));
loader.setImageLoadHandler(defaultImageHandler);
RelativeLayout play_sreen = (RelativeLayout) findViewById(R.id.play_sreen);
user_comment = (LinearLayout) findViewById(R.id.user_comment);
View ll_play = inflate(R.layout.play_item);
initPlay(ll_play);
TextView title = (TextView) ll_play.findViewById(R.id.title);
CubeImageView iv_default = (CubeImageView) ll_play
.findViewById(R.id.detailPic);
iv_default.loadImage(this.imageLoader, shortVideo.thumbnailV2);
title.setText(shortVideo.title);
TextView play_count = (TextView) ll_play.findViewById(R.id.play_count);
TextView des = (TextView) ll_play.findViewById(R.id.des);
des.setText(shortVideo.description);
play_sreen.addView(ll_play);
View edit = inflate(R.layout.edit_item);
final MeterailEditText et_content = (MeterailEditText) edit
.findViewById(R.id.et_content);
ImageView iv_send = (ImageView) edit.findViewById(R.id.iv_send);
comment_footer = (TextView) inflate(R.layout.comment_footer);
user_comment.addView(edit);
user_comment.addView(comment_footer);
auto_Play = SharedPreferencesUtils.getBoolean(this, "auto_play", false);
if (TextUtils.isEmpty(shortVideo.author)) {
play_count.setText("标签 : " + shortVideo.tag);
new PlayAddressAsyncTask().execute();
} else {
play_count.setText("作者 : " + shortVideo.author);
mVideoSource = shortVideo.player;
sendPlayMessage(auto_Play);
}
iv_send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String ed_String = et_content.getText().toString().trim();
if (TextUtils.isEmpty(ed_String)) {
Toast.makeText(PlayActivity.this, "请输入评论内容", 0).show();
return;
}
if (ConstantValue.user == null) {
Intent intent = new Intent(PlayActivity.this,
LoginActivity.class);
startActivity(intent);
int4Right();
return;
}
final Comment comment = new Comment();
comment.content = ed_String;
comment.published = String.valueOf(System.currentTimeMillis());
comment.user = ConstantValue.user;
MapUtil.saveComment(comment, shortVideo.rsId,
new SaveCallback() {
@Override
public void done(AVException arg0) {
if (arg0 == null) {
list.add(0, comment);
showToast(true, "发表成功");
et_content.setText("");
CommentLinearLayout layout = new CommentLinearLayout(
PlayActivity.this, comment, loader);
user_comment.addView(layout, 1);
} else {
showToast(false, "发表失败");
}
}
});
}
});
comment_footer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
new CommentAsyncTask().execute();
}
});
new CommentAsyncTask().execute();
}
/**
* 获取评论
*/
private class CommentAsyncTask extends
AsyncTask<Void, Void, List<AVObject>> {
@Override
protected List<AVObject> doInBackground(Void... arg0) {
return MapUtil.getComments(shortVideo.rsId, LIMIT, list.size());
}
// 2015-02-02T04:58:28.046Z
@Override
protected void onPostExecute(List<AVObject> result) {
if (result != null && result.size() > 0) {
if (result.size() < LIMIT) {
comment_footer.setText("没有更多评论了");
comment_footer.setEnabled(false);
}
user_comment.removeViewAt(user_comment.getChildCount() - 1);
for (AVObject aVObject : result) {
Comment comment = new Comment();
comment.content = aVObject.getString("content");
comment.published = aVObject.getString("published");
comment.user = new User(aVObject.getString("location"),
aVObject.getString("gender"),
aVObject.getString("screen_name"),
aVObject.getString("profile_image_url"));
CommentLinearLayout layout = new CommentLinearLayout(
PlayActivity.this, comment, loader);
list.add(comment);
user_comment.addView(layout);
}
user_comment.addView(comment_footer);
} else {
comment_footer.setText("暂无任何评论");
comment_footer.setEnabled(false);
}
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
/***************************************** 百度视频sdk ************************************************************/
/**
* 您的ak
*/
private String AK = "t207G26112s0cbhYjtDuxBP7";
/**
* //您的sk的前16位
*/
private String SK = "9s4Eof8Os1zvEht4ybem6U64Sw0R3Xtc";
private String mVideoSource = null;
private ImageButton mPlaybtn = null;
private ImageButton pre_play_button = null;
private RelativeLayout mController = null;
private SeekBar mProgress = null;
private TextView mDuration = null;
private TextView mCurrPostion = null;
/**
* 记录播放位置
*/
private int mLastPos = 0;
/**
* 播放状态
*/
private enum PLAYER_STATUS {
PLAYER_IDLE, PLAYER_PREPARING, PLAYER_PREPARED,
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_play, menu);
MenuItem item = menu.findItem(R.id.action_important);
String ids = SharedPreferencesUtils.getCollectionId(this);
if (ids.contains(shortVideo.rsId)) {
item.setIcon(R.drawable.ic_action_important);
} else {
item.setIcon(R.drawable.ic_action_not_important);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_share:
shareVideo();
break;
case R.id.action_important:
clickCollection(item);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private boolean isSharePause = false;
private void shareVideo() {
if (mVV.isPlaying()) {
videoPause();
isSharePause = true;
}
ShareDialog dialog = new ShareDialog(this, getWindowManager()
.getDefaultDisplay().getWidth() - 80, this.dip2px(400));
dialog.setOnShareDataListener(new OnShareDataListener() {
@Override
public void onShareData(UMSocialService mController) {
uMSocialService = mController;
mController.setShareContent(shortVideo.description
+ ",更多精彩创意视频,尽在<微视频>,应用下载地址:http://www.baidu.com");
// 设置分享视频
UMVideo umVideo = new UMVideo(shortVideo.link);
umVideo.setMediaUrl(shortVideo.link);
umVideo.setTargetUrl("http://www.baidu.com");
// 设置视频缩略图
umVideo.setThumb(shortVideo.thumbnailV2);
umVideo.setTitle(shortVideo.title);
mController.setShareMedia(umVideo);
}
});
dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface arg0) {
if (isSharePause && !mVV.isPlaying()) {
isSharePause = false;
videoResume();
}
}
});
dialog.show();
}
private void clickCollection(MenuItem item) {
String ids = SharedPreferencesUtils.getCollectionId(this);
if (ids.contains(shortVideo.rsId)) {
// 取消
SharedPreferencesUtils.cancelCollection(this, shortVideo);
item.setIcon(R.drawable.ic_action_not_important);
Toast.makeText(this, "取消收藏", 0).show();
} else {
// 收藏
SharedPreferencesUtils.saveCollection(this, shortVideo);
item.setIcon(R.drawable.ic_action_important);
Toast.makeText(this, "收藏成功", 0).show();
}
}
private PLAYER_STATUS mPlayerStatus = PLAYER_STATUS.PLAYER_IDLE;
private BVideoView mVV = null;
private EventHandler mEventHandler;
private HandlerThread mHandlerThread;
private final Object SYNC_Playing = new Object();
private WakeLock mWakeLock = null;
private static final String POWER_LOCK = "VideoViewPlayingActivity";
private static final int UI_CONTROLLER_INVISIBLE = 0;
private final int EVENT_PLAY = 0;
private final int UI_EVENT_UPDATE_CURRPOSITION = 1;
class EventHandler extends Handler {
public EventHandler(Looper looper) {
super(looper);
}
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case EVENT_PLAY:
/**
* 如果已经播放了,等待上一次播放结束
*/
if (mPlayerStatus != PLAYER_STATUS.PLAYER_IDLE) {
synchronized (SYNC_Playing) {
try {
SYNC_Playing.wait();
Log.v(TAG, "wait player status to idle");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 设置播放url
*/
mVV.setVideoPath(mVideoSource);
/**
* 续播,如果需要如此
*/
if (mLastPos > 0) {
mVV.seekTo(mLastPos);
mLastPos = 0;
}
/**
* 显示或者隐藏缓冲提示
*/
mVV.showCacheInfo(true);
/**
* 开始播放
*/
mVV.start();
mPlayerStatus = PLAYER_STATUS.PLAYER_PREPARING;
break;
default:
break;
}
}
}
@Override
public void onHandleMessage(Message msg) {
switch (msg.what) {
/**
* 更新进度及时间
*/
case UI_EVENT_UPDATE_CURRPOSITION:
if (mVV.isPlaying()) {
int currPosition = mVV.getCurrentPosition();
int duration = mVV.getDuration();
updateTextViewWithTimeFormat(mCurrPostion, currPosition);
updateTextViewWithTimeFormat(mDuration, duration);
mProgress.setMax(duration);
mProgress.setProgress(currPosition);
}
mHandler.sendEmptyMessageDelayed(UI_EVENT_UPDATE_CURRPOSITION, 500);
break;
/**
* 隐藏控制UI
*/
case UI_CONTROLLER_INVISIBLE:
if (mVV.isPlaying()) {
updateControlBar(false);
}
break;
default:
break;
}
}
protected void initPlay(View view) {
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ON_AFTER_RELEASE, POWER_LOCK);
initUI(view);
/**
* 开启后台事件处理线程
*/
mHandlerThread = new HandlerThread("event handler thread",
Process.THREAD_PRIORITY_BACKGROUND);
mHandlerThread.start();
mEventHandler = new EventHandler(mHandlerThread.getLooper());
}
private class PlayAddressAsyncTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
map.put("rsId", shortVideo.rsId);
map.put("link", shortVideo.link);
PlayAddressProtocol protocol = new PlayAddressProtocol();
return protocol.loadInfo(PlayActivity.this, map, cache);
}
@Override
protected void onPostExecute(String result) {
if (TextUtils.isEmpty(result)) {
Toast.makeText(PlayActivity.this, "亲,服务器被大家蹂躏了哦!", 0).show();
return;
}
mVideoSource = result;
sendPlayMessage(auto_Play);
super.onPostExecute(result);
}
}
private void sendPlayMessage(boolean auto_Play) {
if (!auto_Play) {
return;
}
int flag = AppUtils.isWifi(this);
boolean b = SharedPreferencesUtils.getBoolean(this, "prompt__not_wifi",
true);
if (flag == 2 && b) {
new AlertDialog(this).builder().setTitle("温馨提示")
.setMsg("当前播放使用的是非wifi环境(如果不想再提示,可以进入设置页面设置),确定继续?")
.setPositiveButton("继续", new OnClickListener() {
@Override
public void onClick(View v) {
play();
}
}).setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(View v) {
}
}).show();
return;
}
play();
}
private void play() {
mHandler.post(new Runnable() {
@Override
public void run() {
pre_play_button.setVisibility(View.GONE);
VideoAction.setVisibility(View.GONE);
mPlaybtn.setBackgroundResource(R.drawable.pause_btn_style);
shimmer.cancel();
}
});
mEventHandler.sendEmptyMessage(EVENT_PLAY);
}
// 我的收藏,缓存,意见反馈,检测新版本,评论
private ShimmerTextView shimmer_tv;
private RelativeLayout VideoAction, rl_container;
private Button zoom_btn;
private boolean isFullScreen = false;
/**
* 初始化界面
*/
private void initUI(View view) {
mPlaybtn = (ImageButton) view.findViewById(R.id.play_btn);
zoom_btn = (Button) view.findViewById(R.id.zoom_btn);
rl_container = (RelativeLayout) view.findViewById(R.id.rl_container);
pre_play_button = (ImageButton) view.findViewById(R.id.pre_play_button);
mController = (RelativeLayout) view.findViewById(R.id.controlbar);
shimmer_tv = (ShimmerTextView) view.findViewById(R.id.shimmer_tv);
VideoAction = (RelativeLayout) view.findViewById(R.id.VideoAction);
shimmer = new Shimmer();
shimmer.start(shimmer_tv);
mProgress = (SeekBar) view.findViewById(R.id.media_progress);
mDuration = (TextView) view.findViewById(R.id.time_total);
mCurrPostion = (TextView) view.findViewById(R.id.time_current);
registerCallbackForControl();
/**
* 设置ak及sk的前16位
*/
BVideoView.setAKSK(AK, SK);
/**
* 获取BVideoView对象
*/
mVV = (BVideoView) view.findViewById(R.id.video_view);
mVV.requestFocus();
/**
* 注册listener
*/
mVV.setOnPreparedListener(this);
mVV.setOnCompletionListener(this);
mVV.setOnErrorListener(this);
mVV.setOnInfoListener(this);
mVV.setVideoScalingMode(1);
/**
* 设置解码模式
*/
mVV.setDecodeMode(BVideoView.DECODE_SW);
}
private class PlayOnclickListener implements OnClickListener {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mVV.isPlaying()) {
mPlaybtn.setBackgroundResource(R.drawable.play_btn_style);
/**
* 暂停播放
*/
videoPause();
} else {
mPlaybtn.setBackgroundResource(R.drawable.pause_btn_style);
/**
* 继续播放
*/
videoResume();
}
}
}
private void changeScreen() {
if (isFullScreen) {
setMinScreen();
} else {
setFullScreen();
}
}
// 切换为全屏
private void setFullScreen() {
if (Build.VERSION.SDK_INT >= 9) {
setRequestedOrientation(6);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
getWindow().addFlags(1024);
mActionBar.hide();
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
getWindowManager().getDefaultDisplay().getWidth(),
getWindowManager().getDefaultDisplay().getHeight());
mVV.setLayoutParams(layoutParams);
mController.setLayoutParams(layoutParams);
VideoAction.setLayoutParams(layoutParams);
zoom_btn.setBackgroundResource(R.drawable.screensize_zoomin_button);
rl_container.setFocusable(true);
rl_container.setFocusableInTouchMode(true);
rl_container.requestFocus();
isFullScreen = true;
}
// 切换为小屏幕
private void setMinScreen() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
getWindow().clearFlags(1024);
mActionBar.show();
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
getWindowManager().getDefaultDisplay().getWidth(),
getDimen(R.dimen.video_play_heigh));
mVV.setLayoutParams(layoutParams);
mController.setLayoutParams(layoutParams);
VideoAction.setLayoutParams(layoutParams);
zoom_btn.setBackgroundResource(R.drawable.screensize_zoomout_button);
isFullScreen = false;
}
/**
* 为控件注册回调处理函数
*/
private void registerCallbackForControl() {
PlayOnclickListener playListener = new PlayOnclickListener();
rl_container.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
updateControlBar(!barShow);
}
});
mPlaybtn.setOnClickListener(playListener);
zoom_btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
changeScreen();
}
});
pre_play_button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
sendPlayMessage(true);
}
});
OnSeekBarChangeListener osbc1 = new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
// Log.v(TAG, "progress: " + progress);
updateTextViewWithTimeFormat(mCurrPostion, progress);
}
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
/**
* SeekBar开始seek时停止更新
*/
mHandler.removeMessages(UI_EVENT_UPDATE_CURRPOSITION);
}
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
int iseekPos = seekBar.getProgress();
/**
* SeekBark完成seek时执行seekTo操作并更新界面
*
*/
mVV.seekTo(iseekPos);
Log.v(TAG, "seek to " + iseekPos);
mHandler.sendEmptyMessage(UI_EVENT_UPDATE_CURRPOSITION);
}
};
mProgress.setOnSeekBarChangeListener(osbc1);
}
private void updateTextViewWithTimeFormat(TextView view, int second) {
int hh = second / 3600;
int mm = second % 3600 / 60;
int ss = second % 60;
String strTemp = null;
if (0 != hh) {
strTemp = String.format("%02d:%02d:%02d", hh, mm, ss);
} else {
strTemp = String.format("%02d:%02d", mm, ss);
}
view.setText(strTemp);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
/**
* 在停止播放前 你可以先记录当前播放的位置,以便以后可以续播
*/
if (mVV.isPlaying()) {
mLastPos = mVV.getCurrentPosition();
mVV.stopPlayback();
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.v(TAG, "onResume");
if (null != mWakeLock && (!mWakeLock.isHeld())) {
mWakeLock.acquire();
}
/**
* 发起一次播放任务,当然您不一定要在这发起
*/
if (!mVV.isPlaying() && mLastPos != 0) {
sendPlayMessage(true);
}
}
// private long mTouchTime;
private boolean barShow = true;
private Shimmer shimmer;
private boolean auto_Play = false;
/*
* @Override public boolean onTouchEvent(MotionEvent event) {
*
* // TODO Auto-generated method stub if (event.getAction() ==
* MotionEvent.ACTION_DOWN) mTouchTime = System.currentTimeMillis(); else if
* (event.getAction() == MotionEvent.ACTION_UP) { long time =
* System.currentTimeMillis() - mTouchTime; if (time < 400) {
* updateControlBar(!barShow); } }
*
* return false; }
*/
public void updateControlBar(boolean show) {
if (show) {
mController.setVisibility(View.VISIBLE);
mHandler.removeMessages(UI_CONTROLLER_INVISIBLE);
mHandler.sendEmptyMessageDelayed(UI_CONTROLLER_INVISIBLE, 3000);
} else {
mController.setVisibility(View.INVISIBLE);
}
barShow = show;
}
private void videoPause() {
if (mVV != null) {
mLastPos = mVV.getCurrentPosition();
mVV.pause();
}
}
private void videoResume() {
if (mVV != null) {
mLastPos = 0;
mVV.resume();
}
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
/**
* 退出后台事件处理线程
*/
mHandlerThread.quit();
}
@Override
public boolean onInfo(int what, int extra) {
// TODO Auto-generated method stub
switch (what) {
/**
* 开始缓冲
*/
case BVideoView.MEDIA_INFO_BUFFERING_START:
break;
/**
* 结束缓冲
*/
case BVideoView.MEDIA_INFO_BUFFERING_END:
break;
default:
break;
}
return true;
}
/**
* 当前缓冲的百分比, 可以配合onInfo中的开始缓冲和结束缓冲来显示百分比到界面
*/
@Override
public void onPlayingBufferCache(int percent) {
// TODO Auto-generated method stub
}
/**
* 播放出错
*/
@Override
public boolean onError(int what, int extra) {
// TODO Auto-generated method stub
Log.v(TAG, "onError");
synchronized (SYNC_Playing) {
SYNC_Playing.notify();
}
mHandler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(PlayActivity.this, "服务器被大家蹂躏了哦...", 0).show();
}
});
releaseTask();
return true;
}
/**
* 播放完成
*/
@Override
public void onCompletion() {
// TODO Auto-generated method stub
Log.v(TAG, "onCompletion");
synchronized (SYNC_Playing) {
SYNC_Playing.notify();
}
releaseTask();
}
private void releaseTask() {
mVV.stopPlayback();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
VideoAction.setVisibility(View.VISIBLE);
pre_play_button.setVisibility(View.VISIBLE);
shimmer.start(shimmer_tv);
}
}, 1000);
mPlayerStatus = PLAYER_STATUS.PLAYER_IDLE;
mHandler.removeMessages(UI_EVENT_UPDATE_CURRPOSITION);
}
/**
* 准备播放就绪
*/
@Override
public void onPrepared() {
// TODO Auto-generated method stub
Log.v(TAG, "onPrepared");
mPlayerStatus = PLAYER_STATUS.PLAYER_PREPARED;
mHandler.sendEmptyMessage(UI_EVENT_UPDATE_CURRPOSITION);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
/** 使用SSO授权必须添加如下代码 */
UMSsoHandler ssoHandler = uMSocialService.getConfig().getSsoHandler(
requestCode);
if (ssoHandler != null) {
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
@Override
public void onBackPressed() {
if (isFullScreen) {
setMinScreen();
} else {
super.onBackPressed();
}
}
private UMSocialService uMSocialService;
private LinearLayout user_comment;
private TextView comment_footer;
private ImageLoader loader;
}