WebRTC原理解析

WebRTC原理解析,第1张

浏览器本身不支持点对点建立信道进行通信,需通过服务器进行中转。因此浏览器之间一次通信需通过两段信道,通信效率同时受制于两段信道宽度,因此并不适合数据流的传输。

WebRTC是浏览器实时通信 RTC 的提供 JS 接口, JS 接口通过信令建立浏览器点对点(peer-to-peer,P2P)的信道,信道可发送任何数据并无需经过服务器。

WebRTC提供三个API

WebRTC使用 RTCPeerConnection 在浏览器之间传递流数据,此流数据通道是P2P的,无需服务器中转。但并不意味着能抛弃服务器,仍需服务器为传递信令(signaling)来建立信道。WebRTC没有定义用于建立信道的信令协议,信令并不是 RTCPeerConnection API 的一部分。

既然没有定义信令(signaling)的协议,可选择任意方式(如AJAX、WebSocket)任意协议(如SIP、XMPP)来传递信令,建立信道。

需要信令来交换信息分为:

通过服务器建立信道

WebRTC提供浏览器之间P2P信道进行数据传输,但建立这个信道必须有服务器的参与。

WebRTC需服务器提供:

NAT/防火墙穿越技术

在处于使用NAT设备的私有TCP/IP网络中的主机之间建立连接时需使用NAT穿越。NAT的行为是非标准化的,穿越技术大多使用公共服务器,使全球任何地方都能访问得到IP地址,在 RTCPeerConnection 中实用ICE框架来保证 RTCPeerConnection 实现NAT穿越。

ICE

ICE(Interactive Connectivity Establishment, 综合性NAT穿越技术)框架整合各种NAT穿越技术如STUN、TURN(Traversal Using Relay NAT,中继NAT实现的穿透),ICE先使用STUN尝试建立一个基于UDP的连接,失败后实用TCP(先尝试>

原地址: >


WebRTC ,名称源自 网页即时通信 (英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的 API。它于 2011 年 6 月 1 日开源并在 Google、Mozilla、Opera 支持下被纳入万维网联盟的 W3C 推荐标准。

首先,他即是 API 也是协议。

其次,他是浏览器进行音频与视频通话的 API,其实还有屏幕共享的功能。

最后,它现在已经处于 W3C 标准,各大浏览器厂商已经对他进行兼容了。

但是如果我们想使用好 webrtc,就得先了解 websocket。而对于 websocket,大家应该都比较熟悉了,比如社交聊天、多人 游戏 、协同编辑、视频会议、基于位置的应用(地图)、等等需要高实时的场景。我们比较常用的微信、QQ、某些直播软件等等也都是基于 websocket 实现消息与信令的转发。大家看到这里可能在信令这里迟疑了,接着看。

webrtc 是 P2P 的一种技术,什么是 P2P?其实就是 端对端,就说是你的音频、视频流不经过服务器中转,直接由一端发送到另一端。

不经过服务器中转,也就说时候,如果通过过程中服务器突然崩溃,是不是通话还能继续?

是的!但是发送音频视频流前,一定是需要建立 P2P 连接的,建立连接前一定需要服务器进行信令转发,这个信令就是通话两端的标识。

而如果想用 webrtc 实现通话,就得先中转信令、建立连接。而建立连接的话最好是要用 websocket 进行信令转发的。大家都知道,websocket 是个通道,在这个通道的所有端,都可以收到任意一端的消息流,包括发消息的本人。

为什么不经过服务器就可以直接获取到对方的视频音频流呢?是因为建立了 P2P 通道,这个 P2P 在中转信令的时候就已经通了,传输视频音频流的时候还要啥服务器啊。这个时候,肯定有小伙伴表示怀疑,音频视频流可以不通过服务器?是的,我骗了大家,确实要经过服务器,但是只是线上需要服务器转发,如果我们是本地两台或者多台同一局域网的端 进行 webrtc 音频视频流的转发,确实不需要中转服务器,但是线上有可能需要,也有可能不需要,这里又涉及到了一个 打洞 的概念。

我们平常可能会听到比较牛 x 的词汇,什么打洞、内网穿透、NAT 穿越,各种高大上的东西,其实也是蛮好理解的。大家都知道,两个不同网络下的两台主机不可以直接进行通信,而是需要走公网或者说各自的网关。打洞、内网穿透、NAT 穿越其实就是一个意思,就是使用 udp 让我们两台非同一网络的主机互联,不走公网,直接实现连接。有玩过花生壳的同学一定能理解内网穿透这个概念。

本地开发的话,两台主机连同一局域网,根本不需要内网穿透,就可以直接通信。

线上开发的话,如果能够 STUN 打洞成功,也不需要中转服务器。但是,有打洞不成功的概率,为什么呢,因为没有走公网,没有给运营商带来收益却带来通信成本,肯定要限制。国外打洞成功的概率在 70%,但是国内 50%都不到。

所以,为了防止打洞不成功的情况,我们使用 TURN 中转服务器 转发流媒体数据进行一个最后保障。此外还有一种方式为 逆向连接 ,也可以帮助我们实现 P2P 建立,他的原理是必须是一方走公网,也是有局限性的。

coturn 中继服务器由两部分组成 STUN 与 TURN,STUN 帮助我们打洞,TURN 帮助我们转发流媒体数据。

##连接过程

以下所有 API 截止到 20211206 为最新

##我有疑问

给大家看看 sdp 的本质,就是自身的媒体信息和编解码信息

一个 offer,一个 answer,我们彼此都知道对方的媒体信息与编解码信息,这样我们才能好好协商,我这边该用什么方式对你的视频音频流进行解码、渲染。

过程有些繁杂,具体流程小伙伴们可以看这篇文章 WebRTC TURN 协议初识及 turnserver 实践。

了解 webrtc 的音视频采集、桌面采集;

了解 websocket 和 webrtc 的整个链路建立过程;

实现 1V1 文字传输、视频通话、语音通话、屏幕共享;

实现视频通话、语音通话、屏幕共享过程中的截图、录音、录屏及 截图、录音、录屏的在线播放与下载;

将以上功能部署上线;

在这里,我们要对音视频建立过程画一个基本的流程图。

基本流程图

对于这些信令,我们使用 websocket 进行转发,这里大家会问,为什么不使用 >语言中一种形似介词的副词。小品词是一类比较特殊的词,它既有副词的某些特征,又具有介词的词形。它往往与前面的动词形成修饰和补充说明的语义关系,本身不能单独充当句子成分;它形似介词,又没有实体意义,却不能独自带宾语,与动词构成的是只有一个论元的单位述谓结构。
要怎样区别这两种词呢?
1) 不及物动词与副词小品词够成的短语动词一般比较容易区分,这类短语后不跟宾语,在阅读时相当于不及物动词,如:

Please draw up a chair and sit down 请拉把椅子坐下来。

You can go ahead to the station and I'll see you there later 你可以先到车站去,我随后再到那里找你。
2) “及物动词 + 小品词”够成的短语动词和“不及物动词 + 介词”够成的短语动词较难区分,语感上它们都可以看作及物动词,后跟宾语。(但是我们在阅读时,并不需要去区分它们,我们需要记住的是该短语动词的用法。)
不及物动词 + 介词:

The chalk fell off the desk and broke 粉笔从书桌上掉下来摔断了。 (注:介词 off 不能移位到宾语 the desk 之后。)
及物动词 + 副词:

Britain threatened to break off diplomatic relations 英国威胁要中止外交关系。

(这种情况下,副词通常可以移到宾语之后,所以也可以说 Britain threatened to break diplomatic relations off)
不少学生用单词卡或单词表之类的资料记住了很多短语,可是在真正阅读时,却有分不清结构,使不上劲的感觉。其中一个原因,就是在记短语动词时,不能单单记住其意思,还需要记住其结构上的用法。要记住哪些短语动词要看作不及物动词,哪些短语动词要看作及物动词。又比如,当学习 put off 这个短语时,需要清楚它有两种变化,一种是 put off sth, 另一种是 put sth off。而在记短语 look after sth 时,要清楚它只能是 look after sth, 而不能是 look sth after。只有熟悉了这些短语在结构上的用法,阅读时才能在第一时间作出正确的反应。

另外需要注意以下几点:

1) 一些词只能作介词,而不能作小品词,如: against, at, for, into, among, with等。

Please look at this box here 请看这里的这个盒子。

I was too tired to care for anything but bed 我太累了,只想上床休息。
2) 单词 out 单独用时只作小品词,如果要用作介词只能用 out of

He picked out the ripest peach

He picked the ripest peach out 他把熟得最透的桃子挑了出来。

Fish cannot survive for a long time out of water 鱼离开水后就活不久了。

He got thrown out of the restaurant 他被赶出了饭馆。
3) 注意有一些词,既可以作小品词与不及物动词搭配,也可以作介词与同一个不及物动词搭配,如:

We shouldn't let any of our students leg behind 我们不能让任何学生落后。

They don't want to leg behind others 他们不希望落在别人后面。
Shall we get off now 我们现在就出发吗?

I'll get off the bus at the terminal 我会在终点站下车。
4) 注意有一些小品词,既可以与不及物动词搭配,又可以与同一个动词的及物动词搭配,如:

The server has broken down last night 昨晚服务器瘫痪了。

This innovation would help to break down the classes (= break the classes down)这种改革将有助于打破等级制度。

Firemen had to break the door down to reach the people trapped inside 消防人员须破门而入, 才能抢救困在屋里的人。
The stock market is going up even though the economy has not picked up yet 虽然经济还没好转,但股市正在上涨。

I'll pick you up tonight 我今晚开车来接你。

介词“支配”着宾语,与名词有关;副词“不支配”宾语,与动词关系比较密切;连词也不支配名词,用于连接词或句子。
I haven't eaten since breakfast

后面接宾语了,是介词

They went to college together in the 1960s and have frequently done business together since

后面没接宾语,是副词

I've earned my own living since I was seven, doing all kinds of jobs

后面接了句子,是连词

接宾语就是介词,不接宾语就是小品词

The children are in the house

The children have just gone in

We drove round

We drove round the city 

常见的可兼作介词和小品词的词

about, above, after, across, along, around,before, behind, below, beneath, beyond, bydown, in, inside, near, off, on, opposite, outside, over, past, round, through, under,underneath, up, without等

只用作介词而不用作小品词的词

against, at, beside, despite, during, except,for, from, into, of, onto, per, till/until, to,towards, upon, via, with等

只用作小品词而不用作介词的词

away, back, backwards, downwards, forwards, out, upwards等

介词和小品词最难辨别的情况

Drink up your milk

后面有名词,我们会认为up是介词

Drink your milk

实际上即便没有这个up,同样也可以接名词,因此这个名词是动词宾语而不是介词宾语,因为这个动词是及物动词,由此可以判断这个up是副词小品词,这种情况可以把小品词放在名词的后面,而介词则不可以:

Drink your milk up

以下情况相同:

She turned off the lights

She turned the lights

She turned the lights off

常用小品词
up

1) 向上(toward or into a higher position)

lift ~ 举起 climb ~ 爬上 come ~ 上升 get ~ 起来 stand ~ 站起来 pick ~ 捡起 draw ~ 升起 grow ~ 长大 hand ~ 拖起 put ~ 举起 send ~ 使上升 rise ~ 升起 look ~ 抬起头 zip ~ 拉上 hold ~ 举起 pile ~ 堆起 dig ~ 挖出 take ~ 拿起 build ~ 树立 set ~ 建立

2) 完成,结束(expressing completeness and finality)

finish ~ 完成 drink ~ 喝干 eat ~ 吃光 burn ~ 烧光 wash ~ 洗净 use ~ 用光 fill ~ 装满 pay ~ 付清 settle ~ 解决 lick ~ 甜净 sum ~ 总结, open ~ 透露 end ~ 结束 let ~ 中止,减少 draw ~ 停止 close ~ 停止,关闭 swallow ~ 吞没 beat ~ 痛打 cover ~ 掩盖 break ~ 结束,分解 wind ~ 结束

3) 离开,消灭(expressing separation and destroy)

break ~ 拆开,驱散cut ~ 切碎 split ~ 分裂 divide ~ 分割 smash ~ 捣毁 blow ~ 炸毁 wither ~ 枯死 tear ~ 撕碎 give ~ 放弃 fold ~ 垮台 dry ~ 枯竭,干涸crack ~ 撞坏 clutter ~ 使散乱 litter ~ 乱丢杂物

4) 增加,变强(to a state of greater activity,force,strength,power and degree

⑴ mount ~ 增加pick ~ 振作,加快pluck ~ 振作 turn ~ 开打,开大,出现 shake ~ 震惊 steam ~ 使发怒 stir ~ 激起,搅起ease ~ 放松 warm ~ 兴奋 speak ~ 大声说 heat ~ 变热 total ~ 加总 tense ~ 紧张 gather ~ 收集 speed ~ 加速 screw ~ 振作 build ~ 增大 show ~ 显现 cheer ~ 振作起来stir ~ 刺激 work ~ 激动,刺激

⑵ 用在带"-en"后缀的动词后(used after the verbs with suffix of -en)

brighten ~ 发亮 fatten ~ 发胖 freshen ~使新鲜 harden ~变硬 sharpen ~ 变快 smarten ~ 变精明strengthen ~ 加强sweeten ~ 变甜 tighten ~ 使紧密 toughen ~ 使强壮soften ~ 变软

5) 变好,改善(as to be better and proper)

bring ~ 抚育 check ~ 核对 clear ~ 清理,晴天clean ~ 整理 do ~ 整理 patch ~ 修理 polish ~ 擦亮,改进light ~ 点亮 tune ~ 调整 tidy ~ 整理 rub ~ 擦亮 train ~ 训练,培养 make ~ 化装,和解,弥补buy ~ 囤积 figure ~ 计算 fix ~ 修理,整理 take ~ 从事

6) 关住,锁紧,固定住(firmly,tightly and closely)

shut ~ 关闭 lock ~ 锁住 tie ~ 栓住 chain ~ 锁住 nail ~ 钉住 fasten ~ 系住 pin ~ 钉住 bind ~ 装订 bar ~ 关住 block ~ 堵塞 choke ~ 堵塞 save ~ 存起来 store ~ 贮藏 stock ~ 储存 cover ~ 掩盖 wrap ~ 包住 lay ~ 储存 hold ~ 延误 keep ~ 坚持

7) 向说话人的方向(to the place where the speaker is)

go ~ run ~ rush ~ drive ~ walk ~ catch ~ swim ~ march ~ come ~

down

1) 向下的位置(to or into a lower position)

cast ~ 扔下 cut ~砍倒 get ~ 下来 hand ~ 传下来 knock ~ 撞倒 lay ~ 放下 let ~ 放下 pour ~ 倾盆而下 pull ~ 拉下 set ~ 放下 sit ~ 坐下 step ~ 走下来 throw ~ 扔下 turn ~ 拆下 take ~ 取下 blow ~ 吹倒 bring ~ 打倒 hang ~ 垂下 sink ~ 沉落 slip ~ 失足 squat ~ 蹲下 swallow ~ 吞下 stoop ~ 伏身 splash ~ 飞溅而下 touch ~ 降落 bend ~ 弯下 bow ~ 鞠躬 kneel ~ 跪下 lie ~ 躺下 strip ~ 脱下

2) 减少(强度,量和体积)(a decrease in intensity,amount,bulk)

dwindle ~ 减少 die ~ 变弱,逐渐停止go ~ 平静下来 mark ~ 削减 hold ~ 压低 burn ~ (火)减弱,烧坏slow ~ 慢下来 burn ~ 烧掉 wash ~ 冲淡 clean ~ 弄干净 rub ~ 擦干净 bring ~ 降低 keep ~ 缩减 trim ~ 裁减 water ~ 冲淡 thin ~ 减少 run ~ 用光衰弱 wear ~ 削减,磨损come ~ 下跌 knock ~ 降价

3) 停止,减弱(to a state of less activity,force,strength and power)

close ~ 关闭 drop ~ 突然停止 break ~ 坏了,中止run ~ 停止 settle ~ 平静下来 cool ~ 冷静下来 turn ~ 拒绝 die ~ 停止 lay ~ 失望 put ~ 镇压

4) 紧紧地,牢牢地(firmly,tightly)

fasten ~ 系牢 chain ~ 链住,栓住clamp ~ 夹住 nail ~ 钉住 pin ~ 扣牢 hammer ~ 钉上 tie ~ 栓住 bind ~ 捆绑 draw ~ 停下来 5) 写下,记下(on paper or in writing) write ~ 写下 copy ~ 抄下 note ~ 记下 take ~ 记下 put ~ 记下 get ~ 记下 have ~ 写下

on

1) 继续(continuously)

carry ~ drive ~ fight ~ hold ~ keep ~ live ~ sleep ~ sing ~ walk ~ go ~ hurry ~ move ~ read ~ follow ~ struggle ~ insist ~ 坚持

2) 连上,固定住,(in or into a state of being connected)

act ~ 对…起作用catch ~ 抓牢 come ~ 跟随 count ~ 依赖 draw ~ 带上,穿上fasten ~ 纠缠,抓牢fit ~ 固定 get ~ 接近 paste ~ 粘住 turn ~ 打开 switch ~ 打开 pin ~ 钉住 put ~ 穿上 try ~ 试穿 pull ~ 穿上 hang ~ 不挂断 build ~ 建立于 leave ~ 留住 take ~ 穿下 rely ~ 依靠 depend ~ 依靠

3) 向前,向上(forward,onward)

add ~ 加上 mark ~ 标上 paint ~ 漆上 press ~ 向前 pass ~ 传递 send ~ 转送 stamp ~ 盖章于 get ~ 上车 hand ~ 传送

4) 开始某活动(in or into an active operation)

work ~ 从事 fall ~ 攻击 hit ~ 突然向起 bring ~ 引起 get ~ 取得进展 look ~ 旁观,观看call ~ 拜访 figure ~ 打算,希望 fix ~ 决心 get ~ 进步,友好相处pick ~ 批评 plan ~ 打算 decide ~ 决定 reflect ~ 思考,反思remark ~ 评论,议论settle ~ 决定 spur ~ 鼓励 urge ~ 督促

off

1) 离开(indicating departure)blow ~ 吹掉 drive ~ 击退 get ~ 下车,动身lift ~ 离开地面 make ~ 逃走 move ~ 离去 pack ~ 打发走 see ~ 送行 ship ~ 运往 start ~ 动身 send ~ 送行,解雇call ~ 叫走 let ~ 放出 take ~ 起飞 touch ~ 发射 give ~ 发出 clear ~ 走开 carry ~ 夺走

2) 去掉,断开(indicating removal or disconnection)

cut ~ 切断 tear ~ 扯掉 take ~ 拿走 chip ~ 切下 come ~ 脱落 cross ~ 除去 drop ~ 跌落 fall ~ 脱落 flick ~ d掉 peel ~ 剥掉 pull ~ 撕开 rub ~ 擦掉 scrape ~ 挂去 shave ~ 剃去 wash ~ 洗掉 shake ~ 抖落 throw ~ 扔开 rip ~ 扯开 turn ~ 关掉 strip ~ 脱去 switch ~ 关掉 take ~ 脱掉 shut ~ 关掉 wear ~ 磨损 go ~ 爆炸 break ~ 中断

3) 完成,停止(indicating completion)

finish ~ 结束 pay ~ 付清 break ~ 停止,中断send ~ 结束 leave ~ 停止 pass ~ 终止,停止sign ~ 停止播音 wear ~ 消失, write ~ 注销,购销bring ~ 完成 call ~ 取消 lay ~ 停止,解雇

4) 着地(down to the ground)

fall ~ 落下 jump ~ 跳下 knock ~ 击倒 slip ~ 滑倒

in

1) 进入,向里(into,inside,indoors)

barge ~ 闯入 beat ~ 打进 break ~ 闯入,插嘴breathe ~ 吸入 burst ~ 闯入,打断drop ~ 偶然拜访 fall ~ 跌入 get ~ 插入,收进 knock ~ 打入 lead ~ 导入 let ~ 进入,嵌入 move ~ 迁入 step ~ 走进 settle ~ 迁入 smuggle ~ 偷偷运进cut ~ 插嘴 call ~ 来访 draw ~ (火车)进站intervene ~ 介入 involve ~ 卷入

2) 包围,关闭(to be surrounded,or enclosed)

close ~ 包围,封闭lock ~ 禁闭 shut ~ 关进 wall ~ 围住

3) 加入,记入(to be added,or included)

book ~ 登记 check ~ 签到 count ~ 记入 fill ~ 填入 hand ~ 交上 take ~ 吸收 send ~ 呈交

out

1) 向外(away from the inside,outside)

keep ~ 使在外 take ~ 拿出 put ~ 放出,伸出come ~ 长出, bring ~拿出 bar ~关在外 breathe ~ 呼吸出 eat ~ 出去吃 get ~ 弄出 go ~ 出去 lay ~ 摆开,展示lock ~ 关在外面 look ~ 向外看 move ~ 搬出 point ~指出 pour ~ 诉说 pull ~ 拉出 ship ~ 运出 stick ~伸出 spit ~ 吐出 beat ~ 敲出 knock ~ 敲出 dine ~ 外出吃饭 drive ~ 驾车外出 leak ~ 漏出 draw ~ 拉出 see ~ 送出门去 draw ~ 出站 let ~ 放出,释放

2) 结束,消失,取消(end, disappear, cancel)

burn ~ 烧尽,烧断clear ~ 清除 dust ~ 清除 fade ~ 消失 put ~ 扑灭 run ~ 用完 use ~ 耗尽 give ~ 耗尽 comb ~ 淘汰 kick ~ 逐出 wipe ~ 消灭 die ~ 灭绝 rub ~ 擦掉 blot ~ 除去 blow ~ 吹熄 bleach ~ 漂白 carry ~ 完成,执行leave ~ 省去 see ~ 完成 go ~ 熄灭 come ~ 罢工,结果cut ~ 删去,停止hold ~ 坚持到底 sell ~ 买完 tire ~ 筋疲力尽 wear ~ 磨损

3) 大声(in a loud voice,aloud)

sing ~ cry ~ shout ~ call ~ ,喊,申斥 spell ~ speak ~ scream ~ read ~ yell ~ sob ~ burst ~ 咆哮

4) 分发,传开(to a number of people or in all directions)

give ~ 分发 spread ~ 传开 set ~ 出发 hand ~ 分发 share ~ 分配 divide ~ 分配 call ~ 出动 start ~ 出发 send ~ 发送 break ~ 爆发,逃脱serve ~ 分发口粮 drop ~ 离开,退出

5) 搞清,弄明白(in or into notice and clearness)

find ~ 找出 figure ~ 算出,解决make ~ 弄清 count ~ 点清 come ~ 出版,出现catch ~ 看出 carry ~ 完成, bear ~ 证明 bring ~ 发表,说出fill ~ 使完全,添满write ~ 写出

over

1) 向下(downwards from an upright position)

knock ~ 撞倒 turn ~ 翻转 fall ~ 脸朝下跌倒trip ~ 拌倒 bend ~ 伏身 look ~ 从…上面看

2) 自始至终,通过,重复(from beginning to end,through,again and again)

look ~ 调查 think ~ 考虑 see ~ 查看 run ~ 匆匆看 talk ~ 商量 call ~ 点名 read ~ 读一遍 go ~ 复习 do ~ 重复 glance ~ 浏览 skip ~ 略过 ponder ~ 思考

3) 向上,向外,(indicating motion upwards or outwards)

run ~ 溢出 spill ~ 溢出 boil ~ 因沸溢出 throw ~ 呕吐

重要性

小品词很重要,因为它表示种种关系;而且把握得不完全往往会给我们带来不少障碍。

On turning the corner,he descended the slope

“转弯”与“下坡”之间的关系,由on来表达,要理解此句,它是关键。

但我们发现on的前述两个意思都不能解释这个句子。考研要求我们全面把握小品词用法,扫除这种障碍。如:on后接动作时,表示“在……之后”。上句迎刃而解。

再比如 “with”,如果仅知道“和……一起”,下面的句子也会有困难。(表伴随状态)

Companies with low accident rates work hard to keep their safety programs alive and active(with: 具有/拥有)

事故率低的公司努力使其安全项目得到有效执行。

With care,they will take home not the problems of science and technology,but the benefits(with表条件: 只有/只要)

只要用心去做,他们带回的就不会是科技的问题,而是好处。

小品词在英语中的频率是极高的。据统计,十个最常用的英文单词中,就有三个是小品词。所以将它彻底征服,也是准备考研的一项要务

附注:Be 动词和小品词连用时,小品词可以表达明确的含义。

例如:Is Tim in No, he's outHe's back in an hour

bits:英 [ˈbɪts]   美 [ˈbɪts]

n有点儿;稍微;稍顷;短距离;小量;小块

v咬;叮;蜇;咬饵;上钩

bit的第三人称单数和复数

例句:

1AJAX uses asynchronous data transfer ( >

AJAX在服务器和客户端之间使用异步数据传输(>

2If you need to remove just a bit of stock, use sandpaper

如果只是需要很小量的修整,可以使用砂纸。

3There's room for another one if you move up a bit

如果你挪开一点,这里还可以容纳多一个人。

4You need to work on your pronunciation a bit more

你需要再加把劲改进发音。

5Wind forward to the bit where they discover the body

往前绕片,绕到他们发现尸体的那一截。

6Can you turn the volume up a little bit

你能把音量开大点儿吗?

7Actually, I'll be a bit late home

说真的,我回家会晚一点。


                                 

                                 


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/12626827.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存