PPAPI开发之路(三)通过本地服务发布例子:media_stream_video的PPAPI
来源:互联网 发布:mui官方源码下载 编辑:程序博客网 时间:2024/06/10 22:21
前言:
在进行下文之前,先介绍下发布PPAPI的几种格式:
Chrome PPAPI插件只能使用PPAPI接口的NativeClient(NaCl)方式编写,
Native Client分别有三种embed类型:
1、“application/x-ppapi”:平台相关,唯一能直接使用win32 api的platfrom(有功能上的限制)。 dll格式,不允许通过Chrome web store分发。
2、“application/x-nacl”:只能通过PPAPI,平台无关,cpu相关。nexe格式,只能通过Chromeweb store分发。
3、“application/x-pnacl”:只能通过PPAPI,平台无关,cpu无关。pexe格式,可以不通过Chrome web store分发据说Flash就是采用第一种类型开发的。
编译:
由于本文是本地服务发布,所需要的格式是pexe格式,所以编译media_stream_video,得到所需要的文件:nmf、pexe等。
Makefile文件代码:
# Copyright (c) 2013 The Chromium Authors. All rights reserved.# Use of this source code is governed by a BSD-style license that can be# found in the LICENSE file.# GNU Makefile based on shared rules provided by the Native Client SDK.# See README.Makefiles for more details.VALID_TOOLCHAINS := pnacl glibc clang-newlib winNACL_SDK_ROOT ?= $(abspath $(CURDIR)/../../..)TARGET = media_stream_videoinclude $(NACL_SDK_ROOT)/tools/common.mkLIBS = ppapi_gles2 ppapi_cpp ppapi pthreadCFLAGS = -WallSOURCES = media_stream_video.cc# Build rules generated by macros from common.mk:$(foreach src,$(SOURCES),$(eval $(call COMPILE_RULE,$(src),$(CFLAGS))))# The PNaCl workflow uses both an unstripped and finalized/stripped binary.# On NaCl, only produce a stripped binary for Release configs (not Debug).ifneq (,$(or $(findstring pnacl,$(TOOLCHAIN)),$(findstring Release,$(CONFIG))))$(eval $(call LINK_RULE,$(TARGET)_unstripped,$(SOURCES),$(LIBS),$(DEPS)))$(eval $(call STRIP_RULE,$(TARGET),$(TARGET)_unstripped))else$(eval $(call LINK_RULE,$(TARGET),$(SOURCES),$(LIBS),$(DEPS)))endif$(eval $(call NMF_RULE,$(TARGET),))
启动本地服务器:
1、进入到......\nacl_sdk\pepper_49\tools目录,其他文件中启动,比如examples目录中用httpd.cmd,又如getting_started目录中用make serve
命令,其实都是启动的tools目录下的httpd.py文件;
2、运行httpd.py文件;
如上图则启动成功。
当然这只是启动服务器而已,当我们实际用的时候是在我们要用的目录启动,比如我们的测试目录是:
E:\SDK\nacl_sdk\pepper_49\media_stream_video;那么我们在该目录下新建一个httpd.cmd文件,代码:
@echo offsetlocalPATH=%CYGWIN%;%PATH%REM Use the path to this file (httpd.cmd) to get theREM path to httpd.py, so that we can run httpd.cmd fromREM any directory. Pass up to 9 arguments to httpd.py.python %~dp0\..\tools\httpd.py %1 %2 %3 %4 %5 %6 %7 %8 %9启动成功之后在,chrome浏览器输入地址http://localhost:5103/;前提在E:\SDK\nacl_sdk\pepper_49\media_stream_video目录下存在几个文件:background.js、common.js、example.js、icon128.png、
index.html、manifest.json,这几个文件在.......examples\api\media_stream_video目录下。效果跟上文
PPAPI开发之路(二)在VS 2013上编译media_stream_video例子一样
注意:
你可能会出现控件没加载出来,如果是这样请通过命令chrome://nacl检查pnacl是否安装成功,如果是这样:
就需要安装pnacl,输入命令chrome://components/,最开始的版本是0.0.0.0,然后点击“检查是否有更新”,更新之后如图:
- PPAPI开发之路(三)通过本地服务发布例子:media_stream_video的PPAPI
- PPAPI开发之路(二)在VS 2013上编译media_stream_video例子
- 编译PPAPI的media_stream_video示例
- PPAPI开发之路(一)环境配置
- NPAPI和PPAPI开发
- NPAPI和PPAPI开发
- NPAPI和PPAPI开发
- PPAPI开发FAQ
- NPAPI和PPAPI开发
- PPAPI插件开发指南
- PPAPI插件开发指南
- 理解PPAPI的设计
- NPAPI和PPAPI插件开发
- 在PPAPI插件中创建本地窗口
- VS2013编译最简单的PPAPI插件
- PPAPI插件与浏览器的交互过程
- PPAPI插件与浏览器的通信
- PPAPI+Skia实现的涂鸦板
- CentOS 6.5 PM2 配置开机启动
- Andrid studio 引用多个module时jar包重复怎么办
- [转]三层架构设计模式
- 如何使用actionmode设计菜单
- 一个简单的framebuffer的显示使用例子
- PPAPI开发之路(三)通过本地服务发布例子:media_stream_video的PPAPI
- linux find
- Linux在64位运行32位程序(安装32位库:rpm、deb)
- spark的基本工作原理和RDD
- [乐意黎]ECS主机抛Error: listen EADDRNOTAVAIL xx at Object.exports._errnoException (util.js:1016
- git常用命令
- swift与oc桥接文件的踩坑
- Python基础概念_14_常见术语
- Android