pjsip 本地视频预览怎么改变内容源的大小 iOS
1 把视频源当然文件来处理,sample有。预览源码预览源码不过这种方法用的本地本地不多。
2 修改vid_stream.c,预览源码预览源码在put_frame和get_frame里,本地本地换上我们自己的预览源码预览源码山东江苏源码视频源。这种方法使用的本地本地最多,很多人在1.x版本里支持视频,预览源码预览源码就用这种方法。本地本地
3 重新构造sdp,预览源码预览源码自己创建rtp通道。本地本地
在sdp上,预览源码预览源码pjsua_call_make_call这个函数非常方便,本地本地直接呼叫对方。预览源码预览源码不过它在底层做了太多工作,本地本地娃娃老板源码比如启动了声卡。而不用这个函数,直接用比较底层的pjsip_inv_send_msg,自己处理的工作相对比较多(但不难,不过这样就不需要pjsua这个现成的程序了,所以我们继续用pjsua_call_make_call)。
不过还好,pj库提供了大量的回调,其中一个:on_call_sdp_created,就是在创建sdp后回调上来,由我们自己再修改。比如我们自己定义rtp的端口g_local_port。
void on_call_sdp_created(pjsua_call_id call_id,
pjmedia_sdp_session *sdp,
pj_pool_t *pool,
const pjmedia_sdp_session *rem_sdp)
{
int nPort;
if (sdp != NULL)
{
pjmedia_sdp_media *m = sdp->media[sdp->media_count-1];
m->desc.port = g_local_port;
pjmedia_sdp_conn *c = sdp->conn;
char* addr;
if (c)
addr= c->addr.ptr;
else
{
const pj_str_t *hostname;
pj_sockaddr_in tmp_addr;
char *addr;
hostname = pj_gethostname();
pj_sockaddr_in_init(&tmp_addr, hostname, 0);
addr = pj_inet_ntoa(tmp_addr.sin_addr);
sdp->conn = (pjmedia_sdp_conn *)pj_pool_zalloc (pool, sizeof(pjmedia_sdp_conn));
sdp->conn->net_type = pj_str("IN");
sdp->conn->addr_type = pj_str("IP4");
sdp->conn->addr = pj_str(addr);
}
sdp->origin.addr = *pj_gethostname();
}
}
同样,这里还可以修改payload type等。python 系统源码
这是发起呼叫时的,接收方收到后的回应之后,也会触发这个回调,自己设定RTP端口,payload type就可以了。
2
呼叫成功后,双方建立起连接关系,这时需要传rtp数据了。pjsua把这些工作都放在底层了,不做任何修改,只需要在发送和接收时,自己做一些处理就行。
先说接收方(参考siprtp.c源码):
pj_status_t init_local_rtp()
{
if (m_bInitMedia)
{
destroy_media();
}
//g_local_port = local_port;
pj_caching_pool_init(&cp, &pj_pool_factory_default_policy, 0);
pool = pj_pool_create(&(cp.factory), "test", , , NULL);
int status;
//status = pjmedia_endpt_create(&cp.factory, pjsip_endpt_get_ioqueue(pjsua_get_pjsip_endpt()), 0, &med_endpt);
status = pjmedia_endpt_create(&cp.factory, NULL, 1, &med_endpt);
status = pjmedia_rtp_session_init(&video.out_sess, , pj_rand());
status = pjmedia_rtp_session_init(&video.in_sess, , 0);
status = pjmedia_transport_udp_create(med_endpt, NULL, g_local_port, 0, &video.transport);
m_bInitMedia = true;
video.active = true;
return 0;
}
这段代码是本地启动rtp一个端口用来接收视频数据。
然后,android receiver源码从sdp得到对方发送的ip和端口,调用pjmedia_transport_attach,建立关联就可以了。
Vue项目的部署
近期我完成了一个基于Vue的记账项目,下面我将分享我的远程部署过程。
一、本地预览
源代码编写完成后,首先将其上传至GitHub,例如:git@github.com:Xin-hai/haiqing-1.git。这个仓库称为源代码仓库,其中dist目录默认不会上传。根据Vue CLI部署指南,需要进行本地预览,确保yarn build打包后的macd算法源码dist目录正确无误。在终端执行官方推荐的命令,启动HTTP服务器访问dist目录。
由于我使用yarn进行包管理,因此使用yarn命令进行安装。在新的预览地址中,我比较了文件,发现打包后的css和js文件体积比yarn serve得到未打包的体积更小。检查完dist目录打包无误后,可以关闭预览。
二、GitHub Pages手动推送更新
新建一个远程仓库地址用于存放dist目录的相关代码,这个仓库仅用于网页展示,如git@github.com:Xin-hai/haiqing-1-website.git。此仓库最好与源代码仓库名称相似,例如在后面加上-website。
在vue.config.js中设置正确的publicPath。找到vue.config.js并添加如下代码,将'/my-project/'修改为新建的仓库地址名'/haiqing-1-website/'。
在项目目录上创建deploy.sh并按照官方写入相关代码。我使用的是yarn,进行了一点小的修改。主要修改的是git push -f git@github.com:Xin-hai/haiqing-1-website.git master:gh-pages这句代码,其中的haiqing-1-website是前面新建的存放dist的仓库,也是用于网页展示的仓库。
在终端运行sh deploy.sh即可自动部署。代码会上传到haiqing-1-website仓库的gh-pages分支上,此分支会自动开启GitHub的pages功能,稍等片刻就能看到网页链接。注意,源代码仓库不会自动更新,需要自己git push相关代码。
三、码云部署
为了优化访问速度,我使用了码云gitee。同样,在码云上新建好仓库后,复制ssh地址,将deploy.sh中的git push -f git@github.com:/.github.io.git master修改为码云的。
在gitee的服务选项中查看Gitee pages功能。
------------------------------------------..补充
在经历一个星期的实名认证之后,我的码云终于可以使用Gitee page功能了。在推送时,除了修改deploy.sh为如下,还需要将vue.config.js中的仓库地址改为码云中的远程仓库地址如下。
注意,gitee需要手动更新,每次git push后需要手动更新才能看到效果。
最后,是我最近做的海青记账的GitHub源代码仓库和Gitee源代码仓库,欢迎大家体验和提出建议。
手机端如何打开html源代码?
在手机端打开 HTML 源代码有几种方法,下面列出了其中的几种常见方法:
1. 使用浏览器开发者工具:大多数移动设备的现代浏览器都提供了开发者工具,类似于桌面浏览器的开发者工具。你可以通过在浏览器中输入特定的命令或手势来打开开发者工具,然后在其中找到源代码视图或类似的选项。在开发者工具中,你可以查看和编辑网页的 HTML 源代码。
2. 使用文本编辑器应用:如果你想在移动设备上查看 HTML 源代码并进行编辑,可以下载适用于移动设备的文本编辑器应用,如 QuickEdit、Jota Text Editor、Dcoder 等。这些应用通常提供了语法高亮显示和其他代码编辑功能,方便你查看和编辑 HTML 源代码。
3. 在线 HTML 编辑器:使用在线 HTML 编辑器可以方便地在手机上查看和编辑 HTML 源代码。有一些在线工具(例如 CodePen、JSFiddle、JS Bin 等)提供了实时预览和编辑功能,你可以在其中输入 HTML 代码并查看结果。
需要注意的是,使用手机浏览器查看和编辑 HTML 源代码可能会受到屏幕尺寸和设备限制的影响。对于复杂的代码和编辑操作,使用桌面环境更为方便。但是对于简单的查看和编辑需求,上述方法可以帮助你在手机上查看和修改 HTML 源代码。
2024-12-24 01:04
2024-12-24 00:30
2024-12-24 00:23
2024-12-23 23:27
2024-12-23 23:18