package com.sinata.xqmuse
|
|
import android.app.Activity
|
import android.app.Application
|
import android.os.Bundle
|
import cn.sinata.xldutils.application.BaseApplication
|
import com.danikula.videocache.Logger
|
import com.sinata.xqmuse.utils.Const
|
import com.sinata.xqmuse.utils.event.EmptyEvent
|
import com.sinata.xqmuse.utils.exo.ExoMediaPlayerFactory
|
import com.umeng.commonsdk.UMConfigure
|
import com.umeng.socialize.PlatformConfig
|
import org.greenrobot.eventbus.EventBus
|
import xyz.doikki.videoplayer.BuildConfig
|
import xyz.doikki.videoplayer.player.VideoViewConfig
|
import xyz.doikki.videoplayer.player.VideoViewManager
|
|
|
class XQApplication :BaseApplication(), Application.ActivityLifecycleCallbacks {
|
override fun getSPName() = "JKSp"
|
|
private val activities = ArrayList<Activity>()
|
private var showNum = 0 //前台activity数量
|
|
override fun onCreate() {
|
super.onCreate()
|
registerActivityLifecycleCallbacks(this)
|
}
|
|
/**
|
* 隐私合规
|
* 三方sdk延迟加载
|
* */
|
fun initSdk(){
|
// DownloadLibrary.init(this, resources.getIdentifier("ic_launcher", "mipmap", packageName),null, packageName)
|
UMConfigure.init(this, Const.UMENG_KEY, "", UMConfigure.DEVICE_TYPE_PHONE, "")
|
UMConfigure.setLogEnabled(true)
|
PlatformConfig.setWeixin(Const.WX_APP_ID, Const.WX_SECRET)
|
initPlayer()
|
}
|
|
private fun initPlayer() {
|
//播放器配置,注意:此为全局配置,按需开启
|
VideoViewManager.setConfig(
|
VideoViewConfig.newBuilder()
|
.setLogEnabled(BuildConfig.DEBUG) //调试的时候请打开日志,方便排错
|
/** 软解,支持格式较多,可通过自编译so扩展格式,结合 [xyz.doikki.dkplayer.widget.videoview.IjkVideoView] 使用更佳 */ // .setPlayerFactory(IjkPlayerFactory.create())
|
// .setPlayerFactory(AndroidMediaPlayerFactory.create()) //不推荐使用,兼容性较差
|
/** 硬解,支持格式看手机,请使用CpuInfoActivity检查手机支持的格式,结合 [xyz.doikki.dkplayer.widget.videoview.ExoVideoView] 使用更佳 */
|
|
// .setPlayerFactory(ExoMediaPlayerFactory.create()) // 设置自己的渲染view,内部默认TextureView实现
|
// .setRenderViewFactory(SurfaceRenderViewFactory.create())
|
// 根据手机重力感应自动切换横竖屏,默认false
|
// .setEnableOrientation(true)
|
// 监听系统中其他播放器是否获取音频焦点,实现不与其他播放器同时播放的效果,默认true
|
// .setEnableAudioFocus(false)
|
// 视频画面缩放模式,默认按视频宽高比居中显示在VideoView中
|
// .setScreenScaleType(VideoView.SCREEN_SCALE_MATCH_PARENT)
|
// 适配刘海屏,默认true
|
// .setAdaptCutout(false)
|
// 移动网络下提示用户会产生流量费用,默认不提示,
|
// 如果要提示则设置成false并在控制器中监听STATE_START_ABORT状态,实现相关界面,具体可以参考PrepareView的实现
|
// .setPlayOnMobileNetwork(false)
|
// 进度管理器,继承ProgressManager,实现自己的管理逻辑
|
// .setProgressManager(new ProgressManagerImpl())
|
// .setPlayerFactory(AndroidMediaPlayerFactory.create())
|
// .setPlayerFactory(IjkPlayerFactory.create())
|
.setPlayerFactory(ExoMediaPlayerFactory.create())
|
.build()
|
)
|
|
// if (BuildConfig.DEBUG) {
|
// StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
|
// StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());
|
// }
|
|
// VideoCache 日志
|
|
// if (BuildConfig.DEBUG) {
|
// StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
|
// StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());
|
// }
|
|
// VideoCache 日志
|
Logger.setDebug(BuildConfig.DEBUG)
|
}
|
|
|
|
/**
|
* 关闭所有页面
|
*/
|
fun exit(){
|
activities.forEach {
|
it.finish()
|
}
|
}
|
|
companion object{ //全局配置
|
var lat:Double? = null
|
var lon:Double? = null
|
var isForeground = true
|
var appContext: XQApplication? = null
|
var finishAnswer = false //完成答题后置为true,跳转到树苗打卡
|
fun getInstance(): XQApplication? {
|
if (appContext == null) {
|
appContext = XQApplication()
|
}
|
return appContext
|
}
|
}
|
|
override fun onActivityPaused(p0: Activity) {
|
|
}
|
|
override fun onActivityStarted(p0: Activity) {
|
showNum++
|
if (showNum == 1) {
|
isForeground = true
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.APP_FOREGROUND))
|
}
|
}
|
|
override fun onActivityDestroyed(p0: Activity) {
|
activities.remove(p0)
|
}
|
|
override fun onActivitySaveInstanceState(p0: Activity, p1: Bundle) {
|
}
|
|
override fun onActivityStopped(p0: Activity) {
|
showNum--
|
if (showNum == 0) {
|
EventBus.getDefault().post(EmptyEvent(Const.EventCode.APP_BACKGROUND))
|
isForeground = false
|
}
|
}
|
|
override fun onActivityCreated(p0: Activity, p1: Bundle?) {
|
activities.add(p0)
|
}
|
|
override fun onActivityResumed(p0: Activity) {
|
}
|
}
|