A one-to-one text, audio and video chat application built with WebRTC and RatchetPHP.
If you require more than two participants, check out this and this.
To test this app on your local server:
composer install
from the root directory to install dependencies./js/config.js
./ws/bin/server.php
and add your domain name
and/or ip address
to $allowed_origins
array, then replace the localhost
and PORT
in $app = new Ratchet\App('localhost', PORT, '0.0.0.0');
with either your domain name
or ip address
and Port number
respectively./js/config.js
. Ensure the domain name
and port
matches what you set above. Use wss
for secured connection.php ws/bin/server.php
from your CLI.Server.example.php
to Server.php
and update it with your free credentials. Alternatively, you can use any STUN/TURN of your choice.To host this online, you'll need to set up a few things:
Create Ratchet as a service so it can run persistently on your server. Check the file create-ratchet-as-a-service-with-daemon.txt for the guide on how to do this on linux servers.
If on SSL, Ratchet won't work unless you make some changes on your server.
Enable mod_proxy.so
Enable mod_proxy_wstunnel.so
Open your apache SSL config file and add this: ProxyPass /wss-secured/ ws://WEB_SOCKET_DOMAIN:WEB_SOCKET_PORT/
e.g. ProxyPass /wss-secured/ ws://www.abc.xyz:PORT/
Note that you can substitute the wss-secured
above with any path of your choice but you have to use the same path while connecting from the front-end as shown below.
Update your web socket url in /js/config.js
:
const wsUrl = 'wss://YOUR_WEB_SOCKET_DOMAIN/wss-secured';
Please note that most browsers will not allow access to media devices except the application is running on SSL or localhost (127.0.0.1).
You can test at https://1410inc.xyz/video-call-app.
uni-app的官方文档,功能简要查询查找 标语:即使深陷泥潭,也不要忘记仰望星空 文档阅读注意 本文档为博主使用uni-app总结的一些常用功能的使用方法,不喜勿喷,仅供快速查找常用的功能。 uni-app中部分有的平台可能不兼容,请查询官方文档 本文档只显示基础功能,具体属性请查询官方文档 微信小程序的版本问题众多,本文档在2.14.1版本中可正常运行,如果不能正常运行,请切换版本,如依然无效
安卓机器中都有很多视频软硬件编解码器,例如: h264/hevc/h263/mpeg4……等等。但是如果现在有一个新的符合标准的编码器给你,需要怎么集成呢?阅读本文你将会找到答案。 1. 软件编码器的集成: 集成之前需要先了解软件编码器的加载过程: 1.1 软件编码器的加载过程 // frameworks/av/media/libstagefright/ACodec.cpp step1: A
There are two forms of video editing, active form and passive form, Passive form : means you make a lot of templates. After the user opens your app, it will be listed to let the user choose a style th
本文url==https://github.com/apicloudcom/APICloud-App-Templates demo :http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=47679 基于APICloud平台开发的应用案例模版源码合集,收集一些优秀的基于 APICloud 技术开发的应用模板,欢迎更多的开发者共
uni-app v3版本更新常见问题排查 组件不显示或者功能异常 原因:组件内使用了 onReady,onReady 是页面的生命周期,不应在组件中直接使用,组件中应该使用 mounted 生命周期 解决方法:onReady 改为 mounted 更新组件状态,视图不更新 原因:使用了 vue 无法观测的数组更新方式(如:this.array[0]=object),相关文档 解决方法:改为可以观测
起因: H5端 uniapp 提供的 video 组件,在点击其全屏按钮后,进入全屏状态,视频显示部分仍然为竖屏显示,无法转换成横屏,查阅了大量的资料。 官方人员说 H5端不支持 了解详情 但是客户提出来了就要想办法解决 解决方案: 自定义 video 组件,不使用官方组件 使用 css 进行样式修改强制 横屏 就有了第一版 获取video标签,对齐进行css样式修改… 简单粗暴 需要把video
Platform: SDM429 msm8937 android8.1 Usecase : video call 本篇日志重在结合log分析 BT蓝牙耳机模式下, video call音频流程。 本项目在configs/msm8937/msm8937.mk关闭了video call的 vendor.voice.path.for.pcm.voip 宏音频通路。所以VOIP通路走的本地录音和
本文url==https://github.com/apicloudcom/APICloud-App-Templates demo :http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=47679 基于APICloud平台开发的应用案例模版源码合集,收集一些优秀的基于 APICloud 技术开发的应用模板,欢迎更多的开发者共
前言: APP录制视频一般调用mediarecorder或者mediacodec接口。mediarecorder的优势就是简单。几行代码就可以搞定。相比于mediarecorder,mediaocdec的优势就是自由度更高,app可以加一些自己的前处理、后处理等算法。所以一般app都会选择mediacodec接口。 本文将介绍app调用mediacodec录像的调用过程: 代码实现
.call( callback:Function, params:Array, scope:*, position:* ) : * 在时间轴的末尾(或position位置)增加一个回调函数,作用类似于add( TweenLite.delayedCall(...) ) ,以下代码效果大致相同: myTimeline.add( TweenLite.delayedCall(0, myFunction,
给定一个 key 和一个 set 作为参数,给定上下文时调用它们。主要用于函数组合。 使用闭包以存储的参数调用存储的 key 。 const call = (key, ...args) => context => context[key](...args); Promise.resolve([1, 2, 3]) .then(call('map', x => 2 * x)) .then(c
Extends Widget A widget that plays a video from an URL. Import this type with “const {Video} = require('tabris');” Android iOS Methods pause() Pauses the video. state changes to pause and speed to 0.
描述 视频播放组件。 安装 $ npm install rax-video --save 属性 属性 类型 默认值 必填 描述 支持 id string - ✘ id 选择器 src string - ✔️ 视频地址 autoPlay boolean false ✘ 设置视频自动播放 muted boolean false ✘ 是否播放音频 loop boolean false ✘ 是否循环播放
WARNING Weex中内置的<video>组件一般只做demo用途,在你的App中,你应该用你喜欢的视频库重新实现video组件。 Video 组件用于在页面中嵌入视频内容。 text 是唯一合法的子组件。 src, string. 内嵌的视频指向的URL。 play-status, string. 可选值为 play | pause,用来控制视频的播放状态,play 或者 pause,默认值
以下是视频的子类型: BMPEG MP4V-ES vnd.mpegurl BT656 MPV vnd.nokia.interleaved-multimedia CelB mpeg vnd.objectvideo DV mpeg4-generic vnd.sealed.mpeg1 H261 nv vnd.sealed.mpeg4 H263 parityfec vnd.sealed.swf H263-