bilibili / DanmakuFlameMaster

Android开源弹幕引擎·烈焰弹幕使 ~
http://app.bilibili.com/
Apache License 2.0
9.55k stars 2.11k forks source link

为什么有时会回调到prepared(),有时回调不到 #336

Open LINYIQIANG opened 7 years ago

LINYIQIANG commented 7 years ago

mDanmakuView.setCallback(new master.flame.danmaku.controller.DrawHandler.Callback()

        {
            @Override
            public void updateTimer(DanmakuTimer timer)
            {

            }

            @Override
            public void drawingFinished()
            {
                Log.i("danmu", "drawingFinished");
            }

            @Override
            public void danmakuShown(BaseDanmaku danmaku)
            {
                Log.i("danmu", "danmakuShown");
            }

            @Override
            public void prepared()   // 我的问题 有时候会回调得到,有时回调不到,prepare失败
            {
                Log.i("danmu", "加载出来");
                // YQ 在这边打开弹幕
                mDanmakuView.start();
                getDanmukus();
                if (mFlag == LIVE_HOST)
                {
                    mDanmakuView.hide();
                }
            }
        });
        mDanmakuView.prepare(mParser, mContext);
        // YQ 这个设为true之后,就会显示这个
        mDanmakuView.showFPS(false);
        mDanmakuView.enableDanmakuDrawingCache(true);
microcodor commented 7 years ago

prepared 我也发现这个问题了

fanyang365 commented 5 years ago

我也遇到了同样的问题,请问你解决了吗?

fanyang365 commented 5 years ago

我用了个偏方可以解决这个问题。 写一个定时器定时检查弹幕服务的在线情况(mDanmakuView.isPrepared),如果发现不在线的话,调用mDanmakuView.release()方法,然后再延时2秒调用初始化函数启动就可以了。希望对大家有帮助