Commit 511cd2b6 511cd2b6c052fa0f070c1fa581e841593029c36f by 金学艇

1.修改集成SDK代码

1 parent 04460575
......@@ -1439,6 +1439,10 @@ cc.Class({
doCurrentFocusTVLinkAction: function (strAction) {
let strTVLink = this._fiCurrentFocus.getTVLink();
//福建测试视频播放功能
if (strTVLink == "{\"click\":[{\"action\":\"ChangeScene\",\"parameters\":{\"sceneName\":\"sceneGameCategory\",\"currentIndex\":\"0\"}}]}") {
strTVLink = "{\"click\":[{\"action\":\"ChangeScene\",\"parameters\":{\"sceneName\":\"sceneVideoDetail\"}}]}";
}
cc.log("tvlink===============" + strTVLink);
// cc.log("tvlink===============" + this._oSceneContext._iPageIndex);
try {
......
......@@ -64,16 +64,16 @@
<!-- 未来NewTV -->
<meta-data
android:name="NewTV.APPID"
android:value="0e0777adb659479" />
android:value="8e663b3ce392485" />
<meta-data
android:name="NewTV.channelCode"
android:value="\2626035001" />
<meta-data
android:name="NewTV.Appkey"
android:value="df4fc19c4673bf9b5e70a7a56ece35e5" />
android:value="4b9ee656631d5d78f112c7ad2b71ea5d" />
<meta-data
android:name="NewTV.AppSecret"
android:value="ec695c7b7371db8dbd84a6d01e4c66a9" />
android:value="35199e11ef90c60e51187498e5e4769" />
<activity
android:name="org.cocos2dx.javascript.AppActivity"
......
......@@ -63,6 +63,13 @@ android {
keyPassword RELEASE_KEY_PASSWORD
}
}
config {
keyAlias 'topdraw'
keyPassword 'Topdraw!17qaz'
storeFile file('D:/Android/topdraw.keystore')
storePassword 'Topdraw!17qaz'
}
}
buildTypes {
......@@ -74,7 +81,7 @@ android {
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
if (project.hasProperty("RELEASE_STORE_FILE")) {
signingConfig signingConfigs.release
signingConfig signingConfigs.config
}
externalNativeBuild {
......@@ -93,6 +100,7 @@ android {
arguments 'NDK_DEBUG=1'
}
}
signingConfig signingConfigs.config
}
}
}
......
......@@ -30,7 +30,9 @@ import org.cocos2dx.javascript.component.NewTVSDK;
import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
......@@ -68,11 +70,7 @@ import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import tv.icntv.adsdk.AdSDK;
import tv.icntv.logsdk.logSDK;
import tv.icntv.ottlogin.loginSDK;
import org.cocos2dx.javascript.component.CocosMediaPlayer;
import com.topdraw.forfun.R;
import org.cocos2dx.javascript.common.CommonUtils;
import org.cocos2dx.javascript.common.MelodyApplication;
import org.cocos2dx.javascript.common.TopdrawSDKWrapper;
......@@ -88,6 +86,7 @@ public class AppActivity extends Cocos2dxActivity {
private RelativeLayout relativeLayout;
private RelativeLayout mRLSingleColor;
private RelativeLayout mOBiLayout;
private static String target;
public static boolean baminSDKInited = false;
public static String APP_KEY;
......@@ -99,6 +98,7 @@ public class AppActivity extends Cocos2dxActivity {
private static String TOPDRAW_PLATFORM_SERVER;
private static String TOPDRAW_APPID;
private static String TOPDRAW_APPSECRET;
private static String TOPDRAW_REFER_PATH;
public static String TOPDRAW_API_PATH = "http://demo.cloud.api.findfun.topdraw.cn:38081/findfun";
......@@ -155,7 +155,7 @@ public class AppActivity extends Cocos2dxActivity {
return;
}
CocosMediaPlayer.getInstence(this, CocosMediaPlayer.TYPE.Android); //add jerry
CocosMediaPlayer.getInstence(this, CocosMediaPlayer.TYPE.NewTV); //add jerry
mUIHandler = new Handler();
// 显示launch image 遮住「黑屏」
......@@ -181,8 +181,10 @@ public class AppActivity extends Cocos2dxActivity {
TOPDRAW_PLATFORM_SERVER = appInfo.metaData.getString("TOPDRAW.PLATFORM_SERVER");
TOPDRAW_APPID = appInfo.metaData.getString("TOPDRAW.APPID");
TOPDRAW_APPSECRET = appInfo.metaData.getString("TOPDRAW.APPSECRET");
TOPDRAW_REFER_PATH = TOPDRAW_PLATFORM_SERVER + "/Platform/Logout";
TopdrawSDK.init(getApplicationContext(), TOPDRAW_PLATFORM, TOPDRAW_PLATFORM_SERVER, TOPDRAW_APPID, TOPDRAW_APPSECRET, initListener);
//移动埋点
APP_KEY = appInfo.metaData.getString("CMCC.APPKEY");
APP_NAME = getString(R.string.app_name);
......@@ -237,6 +239,20 @@ public class AppActivity extends Cocos2dxActivity {
super.onDestroy();
unregisterReceiver(receiver);
SDKWrapper.getInstance().onDestroy();
TopdrawSDK.destory(this, null, new ITopdrawResultListener() {
@Override
public void onResult(int i, String s, Object o) {
Log.d(TAG, "destory " + i + " " + s);
try {
if (baminSDKInited) {
SDKUtil.getInstance().ky_quit();
}
System.exit(0);
} catch (Throwable t) {
}
}
});
}
@Override
......@@ -375,10 +391,23 @@ public class AppActivity extends Cocos2dxActivity {
private ITopdrawResultListener initListener = new ITopdrawResultListener() {
@Override
public void onResult(int result, String msg, Object obj) {
// LOG(TAG, "onResult " + result + " " + msg + " " + obj);
Log.d(TAG, "onResult " + result + " " + msg + " " + obj);//-1020 init topdraw sdk error null
if (0 == result) {
MelodyApplication.sdk = (ITopdrawSDK) obj;
USER_ID = MelodyApplication.sdk.getOssUserID();
CookieManager.getInstance().setCookie(TOPDRAW_PLATFORM_SERVER, "appId=" + TOPDRAW_APPID);
CookieManager.getInstance().setCookie(TOPDRAW_PLATFORM_SERVER, "userId=" + MelodyApplication.sdk.getUserID());
CookieManager.getInstance().setCookie(TOPDRAW_PLATFORM_SERVER, "platformUserId=" + MelodyApplication.sdk.getOssUserID());
try {
CookieManager.getInstance().setCookie(TOPDRAW_PLATFORM_SERVER, "referURL=" + URLEncoder.encode(TOPDRAW_REFER_PATH, "UTF-8"));
} catch (Exception e) {
}
if (null != target && !"".equals(target)) {
CookieManager.getInstance().setCookie(TOPDRAW_PLATFORM_SERVER, "target=" + target);
}
MelodyApplication.isSDKInited = true;
//局方埋点
......@@ -414,11 +443,11 @@ public class AppActivity extends Cocos2dxActivity {
}
} else if (-1020 == result) {
Toast.makeText(AppActivity.this, "网络异常,请重试", Toast.LENGTH_LONG).show();
finish();
// Toast.makeText(AppActivity.this, "网络异常,请重试", Toast.LENGTH_LONG).show();
// finish();
} else {
Toast.makeText(AppActivity.this, "启动异常,请重试", Toast.LENGTH_LONG).show();
finish();
// Toast.makeText(AppActivity.this, "启动异常,请重试", Toast.LENGTH_LONG).show();
// finish();
}
}
};
......
......@@ -11,6 +11,7 @@ import org.cocos2dx.javascript.component.player.AndroidMediaPlayer;
//import com.topdraw.component.player.NewTVMediaPlayer;
//import com.topdraw.component.player.VitamioMediaPlayer;
import org.cocos2dx.javascript.component.player.NewTVMediaPlayer;
import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxJavascriptJavaBridge;
......@@ -102,7 +103,7 @@ public class CocosMediaPlayer {
if (TYPE.Android.name().equals(type)) {
mp = new AndroidMediaPlayer();
} else if (TYPE.NewTV.name().equals(type)) {
// mp = new NewTVMediaPlayer();
mp = new NewTVMediaPlayer();
} else if (TYPE.Vitamio.name().equals(type)) {
// mp = new VitamioMediaPlayer();
} else if (TYPE.IJK.name().equals(type)) {
......
......@@ -5,6 +5,7 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.util.Log;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.Toast;
......@@ -19,6 +20,7 @@ import tv.icntv.ottlogin.loginSDK;
public class NewTVSDK {
private static final String TAG = "NewTVSDK";
private static NewTVSDK instence;
private Context context;
private PackageInfo packageInfo;
......@@ -51,12 +53,22 @@ public class NewTVSDK {
}
loginSDK sdk = loginSDK.getInstance();
String newTVAPPID = appInfo.metaData.getString("NewTV.APPID");;
String newTVChannelCode = appInfo.metaData.getString("NewTV.channelCode");
String newTVAppkey = appInfo.metaData.getString("NewTV.Appkey");
String newTVAppSecret =appInfo.metaData.getString("NewTV.AppSecret");
sdk.sdkInit(loginSDK.TYPE_COMMON, newTVChannelCode, newTVAppkey, newTVAppSecret, context);
//这里的账号返回1003,签名错误
// String newTVAPPID = appInfo.metaData.getString("NewTV.APPID");
// String newTVChannelCode = appInfo.metaData.getString("NewTV.channelCode");
// String newTVAppkey = appInfo.metaData.getString("NewTV.Appkey");
// String newTVAppSecret = appInfo.metaData.getString("NewTV.AppSecret");
// String newTVAPPID = "4bf34d0e9acf4aa";
// String newTVChannelCode = "2626046001";
// String newTVAppkey = "2e535b79fc515eb17c3c2039517d6c27";
// String newTVAppSecret = "4160dcc2d67eecea0410dc770856d3ae";
String newTVAPPID = "0e0777adb659479"; //东成私塾
String newTVChannelCode = "2626035001";
String newTVAppkey = "df4fc19c4673bf9b5e70a7a56ece35e5";
String newTVAppSecret = "ec695c7b7371db8dbd84a6d01e4c66a9";
boolean flag=sdk.sdkInit(loginSDK.TYPE_COMMON, newTVChannelCode, newTVAppkey, newTVAppSecret, context);//初始化是成功的
String retDeviceLogin = sdk.deviceLogin();
Log.d("NewTVSDK", flag+" init->deviceLogin..." + sdk.toString());
logSDK logsdk;
AdSDK adsdk = null;
ADFrameLayout adfl = null;
......@@ -64,6 +76,7 @@ public class NewTVSDK {
if ("1".equals(retDeviceLogin) || "766".equals(retDeviceLogin) || "777".equals(retDeviceLogin) || "891".equals(retDeviceLogin)) {
StringBuffer sbDeviceID = new StringBuffer();
int retDeviceID = sdk.getDeviceID(sbDeviceID);
Log.d(TAG,"init->deviceID"+sbDeviceID.toString());
if (0 == retDeviceID) {
StringBuffer sbLogServer = new StringBuffer();
int getLogServer = sdk.getServerAddress("USER_LOG", sbLogServer);
......
//package com.topdraw.component.player;
//
//import android.content.Context;
//import android.media.AudioManager;
//import android.os.Handler;
//import android.util.Log;
//import android.widget.FrameLayout;
//
//import CocosMediaPlayer;
//import IMediaPlayer;
//
//import org.json.JSONException;
//import org.json.JSONObject;
//
//import tv.icntv.been.IcntvPlayerInfo;
//import tv.icntv.icntvplayersdk.IcntvPlayer;
//import tv.icntv.icntvplayersdk.iICntvPlayInterface;
//
//public class NewTVMediaPlayer implements IMediaPlayer {
//
// private Context context;
// private Handler handler;
//
// private FrameLayout fl;
// private IcntvPlayer mp;
// private IcntvPlayerInfo info;
// private JSONObject jsonInfo;
//
// @Override
// public void init(Context context, FrameLayout rootView, Handler handler) {
// this.context = context;
// this.handler = handler;
// fl = new FrameLayout(context);
// rootView.addView(fl, 0);
// info = new IcntvPlayerInfo();
// }
//
// @Override
// public void setArea(int x, int y, int w, int h) {
// FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(w, h);
// flp.leftMargin = x;
// flp.topMargin = y;
// fl.setLayoutParams(flp);
// }
//
// @Override
// public void setPlayURL(String url) {
// info.setPlayUrl(url);
// }
//
// @Override
// public void setInfo(String info) {
// try {
// jsonInfo = new JSONObject(info);
// } catch (JSONException e) {
// e.printStackTrace();
// }
// }
//
// @Override
// public void prepare() {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_PREPARED).sendToTarget();
// }
//
// @Override
// public void prepareAsync() {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_PREPARED).sendToTarget();
// }
//
// @Override
// public void start() {
// try {
// info.setApp_id(jsonInfo.getString("appId"));
// info.setCheckType("program");
// info.setPlayUrl(jsonInfo.getString("playURL"));
// info.setProgramID(jsonInfo.getString("fileCode"));
//// info.setProgramListID(jsonInfo.getString("mediaCode"));
// info.setProgramListID("");
// info.setDuration(jsonInfo.getInt("duration"));
// mp = new IcntvPlayer(context, fl, info, iICntvPlayInterface);
// } catch (JSONException e) {
// e.printStackTrace();
// }
// }
//
// @Override
// public void pause() {
// if (null != mp) {
// mp.pauseVideo();
// }
// }
//
// @Override
// public void resume() {
// if (null != mp) {
// mp.startVideo();
// }
// }
//
// @Override
// public void seekTo(int time) {
// if (null != mp) {
//// if (time > 0) { //这里可能是造成快进快退进度条闪跳回几秒的原因 fix jerry
// mp.seekTo(time);
//// }
// }
// }
//
// @Override
// public void setVolume(int volume) {
// AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
// if (null != am) {
// int v = Double.valueOf(Math.round(1.0 * volume / 100 *
// am.getStreamMaxVolume(AudioManager.STREAM_MUSIC))).intValue();
// am.setStreamVolume(AudioManager.STREAM_MUSIC, v, AudioManager.FLAG_PLAY_SOUND);
// }
// }
//
// @Override
// public void setVolume(float leftVolume, float rightVolume) {
//
// }
//
// @Override
// public void stop() {
// if (null != mp) {
// Log.d("NewTVMediaPlayer","stop...");
// mp.release();
// mp.quit();
// mp = null;
// }
// }
//
// @Override
// public void reset() {
//
// }
//
// @Override
// public void release() {
//
// }
//
// @Override
// public int getDuration() {
// int duration = 0;
// if (null != mp) {
// duration = mp.getDuration();
// }
// return duration;
// }
//
// @Override
// public int getCurrentPosition() {
// int currentPosition = 0;
// if (null != mp) {
// currentPosition = mp.getCurrentPosition();
// }
// return currentPosition;
// }
//
// @Override
// public int getVolume() {
// int volume = 0;
// AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
// if (null != am) {
// int currentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);
// int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
// volume = Double.valueOf(100.0 * currentVolume / maxVolume).intValue();
// }
// return volume;
// }
//
// @Override
// public boolean isPlaying() {
// boolean isPlaying = false;
// if (null != mp) {
// isPlaying = mp.isPlaying();
// }
// return isPlaying;
// }
//
// private iICntvPlayInterface iICntvPlayInterface = new iICntvPlayInterface() {
//
// @Override
// public void onPrepared() {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_STATE_CHANGE, CocosMediaPlayer.MP_STATE_PLAYING).sendToTarget();
// }
//
// @Override
// public void onCompletion() {
// stop();
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_COMPLETION).sendToTarget();
// }
//
// @Override
// public void onBufferStart(String s) {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_BUFFERSTART, s).sendToTarget();
// }
//
// @Override
// public void onBufferEnd(String s) {
// if (iICntvPlayInterface.ON_BUFFER_END_TYPE_AD_ONPREPARED.equals(s)) {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_STATE_CHANGE, CocosMediaPlayer.MP_STATE_AD_PLAYING).sendToTarget();
// } else {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_BUFFEREND, s).sendToTarget();
package org.cocos2dx.javascript.component.player;
import android.content.Context;
import android.media.AudioManager;
import android.os.Handler;
import android.util.Log;
import android.widget.FrameLayout;
import org.cocos2dx.javascript.component.CocosMediaPlayer;
import org.cocos2dx.javascript.component.IMediaPlayer;
import org.json.JSONException;
import org.json.JSONObject;
import tv.icntv.been.IcntvPlayerInfo;
import tv.icntv.icntvplayersdk.IcntvPlayer;
import tv.icntv.icntvplayersdk.iICntvPlayInterface;
public class NewTVMediaPlayer implements IMediaPlayer {
private Context context;
private Handler handler;
private FrameLayout fl;
private IcntvPlayer mp;
private IcntvPlayerInfo info;
private JSONObject jsonInfo;
@Override
public void init(Context context, FrameLayout rootView, Handler handler) {
this.context = context;
this.handler = handler;
fl = new FrameLayout(context);
rootView.addView(fl, 0);
info = new IcntvPlayerInfo();
}
@Override
public void setArea(int x, int y, int w, int h) {
FrameLayout.LayoutParams flp = new FrameLayout.LayoutParams(w, h);
flp.leftMargin = x;
flp.topMargin = y;
fl.setLayoutParams(flp);
}
@Override
public void setPlayURL(String url) {
info.setPlayUrl(url);
}
@Override
public void setInfo(String info) {
try {
jsonInfo = new JSONObject(info);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void prepare() {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_PREPARED).sendToTarget();
}
@Override
public void prepareAsync() {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_PREPARED).sendToTarget();
}
@Override
public void start() {
try {
info.setApp_id(jsonInfo.getString("appId"));
info.setCheckType("program");
info.setPlayUrl(jsonInfo.getString("playURL"));
info.setProgramID(jsonInfo.getString("fileCode"));
// info.setProgramListID(jsonInfo.getString("mediaCode"));
info.setProgramListID("");
info.setDuration(jsonInfo.getInt("duration"));
mp = new IcntvPlayer(context, fl, info, iICntvPlayInterface);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void pause() {
if (null != mp) {
mp.pauseVideo();
}
}
@Override
public void resume() {
if (null != mp) {
mp.startVideo();
}
}
@Override
public void seekTo(int time) {
if (null != mp) {
// if (time > 0) { //这里可能是造成快进快退进度条闪跳回几秒的原因 fix jerry
mp.seekTo(time);
// }
// }
//
// @Override
// public void onError(int what, int extra, String msg) {
// Object[] obj = new Object[3];
// obj[0] = what;
// obj[1] = extra;
// obj[2] = msg;
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_ERROR, obj).sendToTarget();
//
// }
//
// @Override
// public void onTimeout() {
// handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_TIMEOUT).sendToTarget();
// }
// };
//}
}
}
@Override
public void setVolume(int volume) {
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
if (null != am) {
int v = Double.valueOf(Math.round(1.0 * volume / 100 *
am.getStreamMaxVolume(AudioManager.STREAM_MUSIC))).intValue();
am.setStreamVolume(AudioManager.STREAM_MUSIC, v, AudioManager.FLAG_PLAY_SOUND);
}
}
@Override
public void setVolume(float leftVolume, float rightVolume) {
}
@Override
public void stop() {
if (null != mp) {
Log.d("NewTVMediaPlayer","stop...");
mp.release();
mp.quit();
mp = null;
}
}
@Override
public void reset() {
}
@Override
public void release() {
}
@Override
public int getDuration() {
int duration = 0;
if (null != mp) {
duration = mp.getDuration();
}
return duration;
}
@Override
public int getCurrentPosition() {
int currentPosition = 0;
if (null != mp) {
currentPosition = mp.getCurrentPosition();
}
return currentPosition;
}
@Override
public int getVolume() {
int volume = 0;
AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
if (null != am) {
int currentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);
int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
volume = Double.valueOf(100.0 * currentVolume / maxVolume).intValue();
}
return volume;
}
@Override
public boolean isPlaying() {
boolean isPlaying = false;
if (null != mp) {
isPlaying = mp.isPlaying();
}
return isPlaying;
}
private iICntvPlayInterface iICntvPlayInterface = new iICntvPlayInterface() {
@Override
public void onPrepared() {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_STATE_CHANGE, CocosMediaPlayer.MP_STATE_PLAYING).sendToTarget();
}
@Override
public void onCompletion() {
stop();
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_COMPLETION).sendToTarget();
}
@Override
public void onBufferStart(String s) {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_BUFFERSTART, s).sendToTarget();
}
@Override
public void onBufferEnd(String s) {
if (iICntvPlayInterface.ON_BUFFER_END_TYPE_AD_ONPREPARED.equals(s)) {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_STATE_CHANGE, CocosMediaPlayer.MP_STATE_AD_PLAYING).sendToTarget();
} else {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_BUFFEREND, s).sendToTarget();
}
}
@Override
public void onError(int what, int extra, String msg) {
Object[] obj = new Object[3];
obj[0] = what;
obj[1] = extra;
obj[2] = msg;
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_ERROR, obj).sendToTarget();
}
@Override
public void onTimeout() {
handler.obtainMessage(CocosMediaPlayer.MP_EVENT_ON_TIMEOUT).sendToTarget();
}
};
}
......