PlayerActivity.java
5.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.wepiao.star.starlive.ui;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.text.style.UnderlineSpan;
import android.view.View;
import android.widget.Toast;
import com.cnlive.lib_cnvideo.ui.CnlivePlayerActivity;
import com.cnlive.libs.chat.ChatState;
import com.ksyun.media.player.IMediaPlayer;
import com.wepiao.star.starlive.R;
/**
* Created by gujun on 2016/7/7.
*/
public class PlayerActivity extends CnlivePlayerActivity {
private static final String room = "cnlivetest";
private static final String name = "游客";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.cnlive_activity_player);
//初始化播放器 channelID
setVideoMessage("xinyingshi");
//初始化弹幕视图 间隔时间,行数,行弹幕最大值,速度(0.1-1.0)
initBarrage(400, 5, 10, 0.5f);
//初始化聊天室 房间号,用户昵称
initChat(room, name);
}
@Override
protected void shareViewClick() {
Toast.makeText(this, "分享", Toast.LENGTH_SHORT).show();
}
/**
* @param iMediaPlayer
* @param what
* @param extra 对应错误信息详见说明文档
* 播放异常重试功能调用retryToPlay();
*/
@Override
protected void onPlayStateError(int flag, IMediaPlayer iMediaPlayer, int what, String extra) {
super.onPlayStateError(flag, iMediaPlayer, what, extra);
//使用方法:
// 1.如果使用sdk自带的加载失败界面的话请加上super.onPlayStateError(iMediaPlayer,what,extra);
// 2.如果不适用sdk自带的加载失败界面的话请删除super.onPlayStateError(iMediaPlayer,what,extra),
// 在app端新建的加载失败页面的重试按钮添加点击事件调用retryToPlay();添加重试功能
Toast.makeText(this, "播放异常", Toast.LENGTH_SHORT).show();
}
@Override
protected void showInputLimitDialog() {
//TODO 展示限制60输入的dialog 注意:添加dialog要进行if(!dialog.isShowing())的判断,否则会有弹出多次问题
Toast.makeText(this, "展示输入超过60字的提示框", Toast.LENGTH_SHORT).show();
}
@Override
protected void showInputSensitiveWordsDialog(String msg) {
//TODO 展示敏感词的dialog
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
}
//聊天室事件监听
@Override
public void onChatState(int what, String extra) {
switch (what) {
case ChatState.StateInitDone: //初始化完成
connectChat();//连接聊天室
break;
case ChatState.ErrorInitAuth: //认证失败
case ChatState.ErrorInitNetwork: //未检测到网络
case ChatState.ErrorInitOther: //初始化错误
showMessage("聊天室初始化失败,点击重试", clickErrorInit);//设置错误信息
break;
case ChatState.StateConnect: //与服务器建立连接
break;
case ChatState.StateJoin: //聊天室登录成功
hideMessage();//隐藏错误信息
break;
case ChatState.StateReconnect: //与服务器重新连接
connectChat();
break;
case ChatState.ErrorConnect: //连接服务器失败
case ChatState.ErrorChat: //聊天室连接失败
case ChatState.ErrorName: //昵称冲突
String message = "聊天室连接失败,点击重试";
SpannableString spannableString = new SpannableString(message); //定义文字样式
spannableString.setSpan(new UnderlineSpan(), message.length() - 2, message.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
spannableString.setSpan(new ForegroundColorSpan(Color.rgb(255, 213, 0)), message.length() - 2, message.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
showMessage(spannableString, clickErrorConnect);//设置错误信息
break;
case ChatState.ErrorConnectCloseOnError: //聊天室异常断开
showMessage("聊天室已断开,请检查网络");
break;
case ChatState.ErrorSendOther: //消息发送失败
Toast.makeText(this,extra, Toast.LENGTH_SHORT).show();
break;
case ChatState.ErrorSendNoConnect: //消息发送失败 没有连接聊天室
Toast.makeText(this,extra, Toast.LENGTH_SHORT).show();
break;
}
}
//聊天室连接失败 点击事件
protected View.OnClickListener clickErrorConnect = new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setOnClickListener(null);
connectChat();
}
};
//聊天室初始化失败 点击事件
protected View.OnClickListener clickErrorInit = new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setOnClickListener(null);
initChat(room, name);
}
};
}