|
@@ -1,14 +1,14 @@
|
|
|
-ActionsHandler类中,函数sendData根据用户操作发送不同的数据到服务器
|
|
|
-服务器接受来自sendData的请求数据后,发送视频流(通过webrtc里的inputChannel.onmessage)
|
|
|
+ActionsHandler绫讳腑锛屽嚱鏁皊endData鏍规嵁鐢ㄦ埛鎿嶄綔鍙戦€佷笉鍚岀殑鏁版嵁鍒版湇鍔″櫒
|
|
|
+服务器接受来自sendData的请求数据后,发送视频流(通过webrtc里的inputChannel.onmessage)
|
|
|
|
|
|
-前端主线程接受到数据后,开始执行
|
|
|
-this.workers.dataHandle(r.data) ——> unmarshalStream函数里,通过this.decoderWorker.postMessage(z, [D.buffer])将视频数据传输到worker
|
|
|
-worker里,通过self.onmessage接受到来自主线程的请求并开始执行,然后通过self.postMessage发送请求并传输数据(怀疑将视频流解析成每一帧的yuv数据)到主线程
|
|
|
+前端主线程接受到数据后,开始执行
|
|
|
+this.workers.dataHandle(r.data) ——> unmarshalStream函数里,通过this.decoderWorker.postMessage(z, [D.buffer])将视频数据传输到worker
|
|
|
+worker里,通过self.onmessage接受到来自主线程的请求并开始执行,然后通过self.postMessage发送请求并传输数据(怀疑将视频流解析成每一帧的yuv数据)到主线程
|
|
|
|
|
|
-主线程通过decoderWorker.onmessage来接受来自worker的数据并执行,主要是执行函数:ReceiveDecodeMessage
|
|
|
-ReceiveDecodeMessage函数里给cachedStreams/cachedMetas/cachedPtss/cachedRender赋值(每帧的yuv数据)
|
|
|
+涓荤嚎绋嬮€氳繃decoderWorker.onmessage鏉ユ帴鍙楁潵鑷獁orker鐨勬暟鎹�苟鎵ц�锛屼富瑕佹槸鎵ц�鍑芥暟锛歊eceiveDecodeMessage
|
|
|
+ReceiveDecodeMessage函数里给cachedStreams/cachedMetas/cachedPtss/cachedRender赋值(每帧的yuv数据)
|
|
|
|
|
|
-UpdateYUV通过定时器定时运行,并读取cachedStreams的数据,如下:
|
|
|
+UpdateYUV通过定时器定时运行,并读取cachedStreams的数据,如下:
|
|
|
this.cachedStreams[e] != null && this.executeFunction("stream", {
|
|
|
stream: this.cachedStreams[e],
|
|
|
width: this.cachedResolution[e].width,
|
|
@@ -17,8 +17,108 @@ this.cachedStreams[e] != null && this.executeFunction("stream", {
|
|
|
});
|
|
|
|
|
|
|
|
|
-stream函数因为提前注册过,一旦调用executeFunction,就会执行registerFunction("stream")
|
|
|
-registerFunction("stream")里会调用updateRawYUVData
|
|
|
+stream鍑芥暟鍥犱负鎻愬墠娉ㄥ唽杩囷紝涓€鏃﹁皟鐢╡xecuteFunction锛屽氨浼氭墽琛宺egisterFunction("stream")
|
|
|
+registerFunction("stream")閲屼細璋冪敤updateRawYUVData
|
|
|
|
|
|
-updateRawYUVData函数会将stream传送到材质贴图(_videoRawYUVTexArray里)上,显示最终的效果
|
|
|
+updateRawYUVData鍑芥暟浼氬皢stream浼犻€佸埌鏉愯川璐村浘锛坃videoRawYUVTexArray閲岋級涓婏紝鏄剧ず鏈€缁堢殑鏁堟灉
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+/*****************************************************************************************************************************************************************************************************************/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+旋转:
|
|
|
+鍙戦€佹暟鎹�細
|
|
|
+{
|
|
|
+ "data": {
|
|
|
+ "action_type": 1014,
|
|
|
+ "rotation_action": {
|
|
|
+ "vertical_move": 0,
|
|
|
+ "horizontal_move": -0.003703703703703704
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "sampleRate": 0.02
|
|
|
+}
|
|
|
+
|
|
|
+心跳:
|
|
|
+鍙戦€佹暟鎹�細{"data":{"action_type":1009,"echo_msg":{"echoMsg":"1650272307696"}},"track":false}
|
|
|
+
|
|
|
+漫游:
|
|
|
+鍙戦€佹暟鎹�細
|
|
|
+{
|
|
|
+ "data": {
|
|
|
+ "action_type": 1,
|
|
|
+ "clicking_action": {
|
|
|
+ "clicking_point": {
|
|
|
+ "x": 1396.4945740787787,
|
|
|
+ "y": 2173.158025839534,
|
|
|
+ "z": 1.5306104000406329
|
|
|
+ },
|
|
|
+ "clicking_type": 3,
|
|
|
+ "extra": "",
|
|
|
+ "attitude": "walk"
|
|
|
+ },
|
|
|
+ "clicking_state": {
|
|
|
+ "roomTypeId": "",
|
|
|
+ "person": 0,
|
|
|
+ "avatarId": "",
|
|
|
+ "skinId": "",
|
|
|
+ "roomId": "",
|
|
|
+ "isHost": false,
|
|
|
+ "isFollowHost": false,
|
|
|
+ "skinDataVersion": "",
|
|
|
+ "avatarComponents": "",
|
|
|
+ "nickName": "",
|
|
|
+ "movingMode": 0,
|
|
|
+ "attitude": "",
|
|
|
+ "areaName": "",
|
|
|
+ "pathName": "",
|
|
|
+ "pathId": "",
|
|
|
+ "avatarSize": 1,
|
|
|
+ "extra": "",
|
|
|
+ "prioritySync": false,
|
|
|
+ "player": {
|
|
|
+ "position": {
|
|
|
+ "x": 1540,
|
|
|
+ "y": 2310,
|
|
|
+ "z": 0
|
|
|
+ },
|
|
|
+ "angle": {
|
|
|
+ "pitch": 0,
|
|
|
+ "yaw": 0,
|
|
|
+ "roll": 0
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "camera": {
|
|
|
+ "position": {
|
|
|
+ "x": 1939.5182,
|
|
|
+ "y": 2329.627,
|
|
|
+ "z": 150
|
|
|
+ },
|
|
|
+ "angle": {
|
|
|
+ "pitch": 0,
|
|
|
+ "yaw": 182.8125,
|
|
|
+ "roll": 0
|
|
|
+ }
|
|
|
+ },
|
|
|
+ "cameraCenter": {
|
|
|
+ "x": 1540,
|
|
|
+ "y": 2310,
|
|
|
+ "z": 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+鍙戦€佹暟鎹�細{"data":{"action_type":1004,"get_neighbor_points_action":{"point":{"x":1400,"y":2175,"z":0},"level":1,"containSelf":true,"searchRange":1000}}}
|
|
|
|