本文目录一览:
- 1、基于webrtc以及nodejs的P2P实时视频demo
- 2、webrtc.js 是什么
- 3、vediojs嵌入到web项目中的问题
- 4、webview 与js怎样实现数据交互
- 5、求Java Web视频,谢谢
基于webrtc以及nodejs的P2P实时视频demo
到 下载最新版nodejs。【点击免费试用,0成本启动】
这个是一个在nodejs下实现webrtc服务端的完整示例。下载zip文件,解压。回到“Node.js command prompt”,使用CD命令切到解压后的目录,输入命令:npm install这个命令会自动安装demo所需nodejs插件。完毕后,查看 ..\site\server.js 里面的端口号,若端口已被占用,修改成可用的端口。同样在“Node.js command prompt”,切到“server.js”的目录,输入命令:node server.jschrome 或 firefox 浏览器,访问 127.0.0.1:8080 就看到示例了。
想要了解更多关于webrtc的相关信息,推荐咨询ZEGO即构科技。公司自成立伊始,就专注自研音视频引擎,在音频前处理、网络自适应和跨平台兼容性等方面,达到国际一流水平,同时充分利用基础云服务商的能力,构建了MSDN海量有序自学习数据网络,服务覆盖全球,涵盖上百个音视频互动业务场景。
webrtc.js 是什么
WebRTC是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,可以通过技术快速地构建出一个音视频通讯应用。 虽然其名为WebRTC,但是实际上它不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。【点击免费试用,0成本启动】
对于开发人员来说,WebRTC就是一组API。经常有人说WebRTC是JavaScript API的媒体引擎,准确说WebRTC是一个带有JavaScript API的媒体引擎。但这并不是全部。WebRTC并不止仅限于JavaScript。有很多系统是用C,Java,Python,C#,Erlang,Dart,甚至PHP所写。在移动端,原生软件在其客户端WebRTC SDK实现中使用的是Objective-C,Swift或者Java。但是最主要的是JavaScript。
想要了解更多关于webrtc的相关信息,推荐咨询ZEGO即构科技。即构科技有限公司是为开发者提供高品质实时音视频、实时语音、互动直播和IM即时通讯等服务的公司。核心团队成员均来自QQ,有超过20年的互联网和音视频技术开发经验,以及亿量级海内外用户运营服务能力。专注于实时音视频领域,致力提供全世界范围内最清晰稳定实时的语音视频服务,已服务4000+企业,适用于游戏、娱乐社交、在线教育、在线医疗、远程会议、智能硬件等多种用户场景。
vediojs嵌入到web项目中的问题
方法/步骤
1
在网页中使用HTML5视频嵌入技术最大的优点就是不需要任何第三方插件(比如 Adobe公司的Flash)就能播放。
不需要第三方插件带来的好处就是资源占用更少,想想如果一个网站上嵌入好多flash那该有多慢啊,还好有HTML5视频嵌入技术可以完好地解决这个问题。
那么它的配置复杂吗?很简单!
2
首先下载video.js,百度一下就能找到。
3
这个是下载后的目录。
4
先把要用到的js\css\swf都加载到html页面上。
如:
link href="video-js/video-js.css" rel="stylesheet" type="text/css"
script src="video-js/video.js"/script
script
videojs.options.flash.swf = "video-js/video-js.swf";
/script
5
加入下面的代码:
video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto"width="640"height="480"poster="video-js/my_video_poster.png" data-setup="{}"
source src="Wildlife.mp4" type='video/mp4'
/video
只要记住:修改width="640" height="480"来改变视频显示大小,修改src="Wildlife.mp4"来改变要显示的视频。
然后打开html文件查看效果吧,它有暂停、音量控制、全屏等功能,还有好多其他功能,比如字幕等,这个以后再写。
全屏后的效果:
下面看看各个浏览器的效果:
Firefox:
Chrome:
360:
IE:
可以看到,IE播放是有问题的。解决IE不能播放的问题很简单。
加入:
script
if (navigator.userAgent.indexOf('MSIE') = 0){
document.getElementById("videoDiv").innerHTML='embed src="Wildlife.mp4" autostart="true" loop="true" width="640" height="480" ';
}
/script
意思是:如果是IE浏览器就将视频替换为传统的以FLASH形式播放。
再看看效果,呵呵,好了。
下面附全部代码截图,纯代码发上来不显示,没办法了。
webview 与js怎样实现数据交互
对于android初学者应该都了解webView这个组件。之前我也是对其进行了一些简单的了解,但是在一个项目中不得不用webview的时候,发现了webview的强大之处,今天就分享一下使用webview的一些经验。
1、首先了解一下webview。
webview介绍的原文如下:A View that displays web pages. This class is the basis upon which you can roll your own web browser or simply display some online content within your Activity. It uses the WebKit rendering engine to display web pages and includes methods to navigate forward and backward through a history, zoom in and out, perform text searches and more.
从上面你应该了解到了基本功能,也就是显示网页。之所以我说webview功能强大是因为它和js的交互非常方便,很简单就可以实现。
2、webview能做什么?
①webView可以利用html做界面布局,虽然目前还比较少人这么使用,不过我相信当一些客户端需要复杂的图文(图文都是动态生成)混排的时候它肯定是个不错的选择。
②直接显示网页,这功能当然也是它最基本的功能。
③和js交互。(如果你的js基础比java基础好的话那么采用这种方式做一些复杂的处理是个不错的选择)。
3、如何使用webview?
这里直接用一个svn上取下的demo,先上demo后讲解。demo的结构图如下:
WebViewDemo.java
package com.google.android.webviewdemo;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
/**
* Demonstrates how to embed a WebView in your activity. Also demonstrates how
* to have javascript in the WebView call into the activity, and how the activity
* can invoke javascript.
* p
* In this example, clicking on the android in the WebView will result in a call into
* the activities code in {@link DemoJavaScriptInterface#clickOnAndroid()}. This code
* will turn around and invoke javascript using the {@link WebView#loadUrl(String)}
* method.
* p
* Obviously all of this could have been accomplished without calling into the activity
* and then back into javascript, but this code is intended to show how to set up the
* code paths for this sort of communication.
*
*/
public class WebViewDemo extends Activity {
private static final String LOG_TAG = "WebViewDemo";
private WebView mWebView;
private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = mWebView.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(false);
mWebView.setWebChromeClient(new MyWebChromeClient());
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
mWebView.loadUrl("");
}
final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
/**
* This is not called on the UI thread. Post a runnable to invoke
* loadUrl on the UI thread.
*/
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run() {
mWebView.loadUrl("javascript:wave()");
}
});
}
}
/**
* Provides a hook for calling "alert" from javascript. Useful for
* debugging your javascript.
*/
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
Log.d(LOG_TAG, message);
result.confirm();
return true;
}
}
}
demo.html
html
script language="javascript"
/* This function is invoked by the activity */
function wave() {
alert("1");
document.getElementById("droid").src="android_waving.png";
alert("2");
}
/script
body
!-- Calls into the javascript interface for the activity --
a onClick="window.demo.clickOnAndroid()"div style="width:80px;
margin:0px auto;
padding:10px;
text-align:center;
border:2px solid #202020;"
img id="droid" src="android_normal.png"/br
Click me!
/div/a
/body
/html
main.xml
LinearLayout xmlns:android=""
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/intro"
android:padding="4dip"
android:textSize="16sp"
/
WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
/
/LinearLayout
4、如何交互?
①android如何调用js。
调用 形式:
mWebView.loadUrl("javascript:wave()");
其中wave()是js中的一个方法,当然你可以把这个方法改成其他的方法,也就是android调用其他的方法。
②js如何调用android。
调用形式:
a onClick="window.demo.clickOnAndroid()"
代码中的“demo”是在android中指定的调用名称,即
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
代码中的clickOnAndroid()是“demo”对应的对象:new DemoJavaScriptInterface() 中的一个方法。
③双向交互。
当然是把前面的两种方式组合一下就可以了。
5、讲解demo。
现在你一定了解了android和js的交互了。是时候分析一些demo了,根据上面讲的你也应该比较清楚了。具体交互流程如下:
①点击图片,则在js端直接调用android上的方法clickOnAndroid();
②clickOnAndroid()方法(利用线程)调用js的方法。
③被②调用的js直接控制html。
个人总结:利用webView的这种方式在有些时候UI布局就可以转成相应的html代码编写了,而html布局样式之类有DW这样强大的工具,而且网上很多源码,很多代码片。在UI和视觉效果上就会节省很多时间,重复发明轮子没有任何意义。
求Java Web视频,谢谢
Javaweb的教程包含很多内容,像是web前端HTML+CSS+JS就是重点学习内容,2020最新Javaweb视频教程-Javaweb从入门到精通,这套视频教程内含网络通信、HTML、CSS、JavaScript、MySQL、JDBC、JSP、Servlet等技术,Javaweb从入门到精通全套教程一站搞定!
还有更多Javaweb好Javaweb项目的视频教程,都可以在我们的官网用百度云盘下载!