騰訊雲直播相關問題處理

問題①:彈幕有時候沒有從最右邊出現,一開始就顯示在彈幕區中間,是因爲上一條彈幕劃過改變了起始位置。

mDanmakuView.pause();
mDanmakuView.addDanmaku(danmaku);
mDanmakuView.resume();

在添加彈幕前暫停,添加完之後恢復,要注意的是該方法有可能阻塞消息併發,最好放在最終添加彈幕處處理該問題,比如在addDanmuInternal方法的添加彈幕處修改。


問題②:主播端橫豎屏直播,彈幕顯示問題。

在上篇博客騰訊雲直播下中提到過橫豎屏推流的處理,現在出現的一個問題是 onConfigurationChanged方法沒有被調用,但是主播旋轉手機的時候確實是在橫豎屏推流切換,那麼彈幕區的佈局就會導致彈幕對於主播來說並不總是從右往左。所以我們需要主播端的activity按照重力感應器處理界面橫豎屏。解決方案如下

一、添加權限

<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />

二、強制開啓屏幕旋轉效果,將橫豎屏的處理交還給SENSOR傳感器,放在onCreate的setContentView之後就好。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

注意:當橫屏直播時主播直接退出直播,finish掉直播activity時,相關聯的界面是豎屏模式會造成崩潰的可能,可以在manifest文件中配置主播activity和相關的activity屬性android:screenOrientation="portrait"



問題③:觀看端半屏全屏播放控制

我們一般會給視頻播放器添加一個全屏按鈕,以便於觀衆可以自由選擇喜歡的觀看模式,那麼該如何設置按鈕和activity的狀態呢。半屏全屏可以根據佈局的weight來分配播放器的空間,全屏時騰訊雲提供了視頻播放旋轉270度的方法,但是該方法並不會改變activity的橫豎屏狀態,所以就會出現彈幕方向以及軟鍵盤彈出方向都不對的問題。下面提供一種設置方法。

	@Override
	public void onNetStatus(Bundle bundle) {
		int width = Integer.parseInt(bundle.get(TXLiveConstants.NET_STATUS_VIDEO_WIDTH).toString());
		int height = Integer.parseInt(bundle.get(TXLiveConstants.NET_STATUS_VIDEO_HEIGHT).toString());
		if (width != 0 && height != 0) {
			if (width > height) {
				// 橫屏推流
				isPortraitPusher = false;
				if (fullScreen) {
					mTxlpPlayer.pause();
					setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
					mTxlpPlayer.resume();
				}
			} else {
				// 豎屏推流
				isPortraitPusher = true;
				if (fullScreen) {
					mTxlpPlayer.pause();
					setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
					mTxlpPlayer.resume();
				}
			}
		}

	}

以上是騰訊雲提供的一個觀看端的狀態回調,每秒響應一次,其中setRequestedOrientation方法就是設置activity狀態的關鍵。當然manifest依然需要配置configChanges屬性。該方法解決了橫豎屏問題,相關的頁面佈局也就會跟隨變化,你如果嫌這種頁面佈局醜又不怕麻煩的話可以讓UI設計兩套佈局分別放置在不同的layout文件夾效果如下。



問題④:主播端預覽畫面黑屏(部分機器,比如小米Max 榮耀8)

mTXCloudVideoView.enableHardwareDecode(true);
在開始攝像頭預覽前加入以上代碼,作用爲開啓硬件加速,可改變部分機型不能支持直播需要的資源消耗 cpu gpu 等情況,還能讓正常的機型更好的支持直播功能。


一些解釋:本來預備將demo上傳csdn,各位碼友看博客介紹時也好有個參考,demo有問題也可以相互探討,奈何csdn限制太高,本碼農等級太低只有60M的上傳權限,所以就傳個簡潔版,有問題可以留言提出相互探討demo鏈接


發佈了24 篇原創文章 · 獲贊 43 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章