最近项目有个小需求,需要ios实现手机作为服务端,将内部视频文件,在外面能够直接访问

结合网上的例子,实现如下:

1、基于CocoaHTTPServer实现

2、可用pod集成,也可直接拖动文件集成

pod集成:

1、新建项目,Podfile文件如下,执行install

pod 'CocoaHTTPServer'

2、直接拖文件

a、先下载文件CocoaHTTPServer,如下:

导入CocoaHTTPServer-master目录下的Core文件夹

导入Vendor目录下的CocoaAsyncSocketCocoaLumberjack文件夹

3、在 ViewController里写开启代码

a、由于是swift项目,而以上库都是基于OC的,所以需要在桥接文件import头

b、初始化httpServer

     httpServer = HTTPServer()
httpServer.setType("_http.tcp") //1、播放沙盒文件
print("\(NSHomeDirectory())/Documents")
//设置http服务器根目录
httpServer.setDocumentRoot("\(NSHomeDirectory())/Documents")

注意:

1、以上的根目录我是直接定位到Documents下的,这里可自行更换

2、这里我直接拿沙盒的文件播放的,所以demo下载后,需要在沙盒里先添加一个视频,或者直接把我项目里放置的那个视频拖进去。

c、开启、关闭。(这里我为了省事,直接点击屏幕进行控制)

 override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
isOPen = !isOPen
if isOPen{
do{
try httpServer.start()
print( "请打开以下网址: http://\(HTTPHelper.ipAddress() ?? ""):\(httpServer.listeningPort())/1.mp4")
}catch{
print("启动失败")
} }else{
httpServer.stop()
}
}

d、开启后,注意打印的地址,拷贝到电脑的浏览器地址栏,可以直接下载,或者在vlc添加播放地址

(vlc可以直接百度下载即可。)

e、vlc里直接观看,当然其他播放器也可以,直接把播放地址添加下。注意:这里必须保证播放器所在局域网和手机一致。

视频播放时,可以快进、快退、暂停等操作。

源码下载

写在最后:

1、以上只是一个简单的例子,实现了ios设备做服务端,外部设备做客户端,直接访问ios设备的资源(不仅仅是视频,其他文件同理)

2、pod集成和手动集成都是可以的,见上文

3、本文是swift版本的,如果需要oc版本,可参考:https://github.com/OPTJoker/CocoaHttpServer

Swift搭建本地http服务器,实现外部视频即时播放的更多相关文章

  1. Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  2. [转]World Wind Java开发之四——搭建本地WMS服务器

    在提供地理信息系统客户端时,NASA还为用户提供了开源的WMS Server 服务器应用:World Wind WMS Server.利用这个应用,我们可以架设自己的WMS服务并使用自己的数据(也支持 ...

  3. Dnsmasq安装与配置-搭建本地DNS服务器

    默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常 ...

  4. 配置Yum源repo文件及搭建本地Yum服务器

    分享一篇配置Yum源repo文件及搭建本地Yum服务器的方法,希望对大家有用. Yum源的话有三大类: Base Extra Epel Base:就是你下载的光盘镜像里面的DVD1Extra:就是你下 ...

  5. Windows下搭建本地SVN服务器【转】

    转自:http://www.linuxidc.com/Linux/2015-01/111563.htm 本文介绍Windows下搭建本地SVN服务器的方法,网上资料比较少也比较旧,大都介绍的是旧版本S ...

  6. svn 使用TortoiseSVN server搭建本地SVN服务器

    使用TortoiseSVN server搭建本地SVN服务器

  7. 利用 Nginx 反向代理搭建本地 yum 服务器

    在政府,医院等单位有网络安全要求,对内外网进行物理隔离,然而内网主机无法访问互联网下载安装包,通过Nginx 反向代理搭建本地yum服务器实现内网主机安装包下载. Centos 8.2 部署 Ngin ...

  8. iOS:搭建本地的服务器

    一.介绍 作为一个专业的程序员,不管你是前端还是移动端或者是后台,能够自己试着搭建一个本地的服务器还是很有必要的,有的时候,我们可以自己测试一些数据,很方便开发.其实,mac是自带有本地的服务器的,用 ...

  9. 使用Nginx搭建本地流媒体服务器

    Mac搭建nginx+rtmp服务器 1.打开终端,查看是否已经安装Homebrew,直接输入命令 man brew 如果Mac已经安装了, 会显示一些命令的帮助信息. 此时输入Q退出即可, 直接进入 ...

随机推荐

  1. Android Strings.xml To CSV / Excel互转

    Android Strings.xml To CSV/Excel互转https://blog.csdn.net/hzxpyjq/article/details/50686983https://blog ...

  2. [SDOI2012]象棋

    题解: sd的题目也真是奇怪 第一题有了最短路第二题还有 第二题有了网络流第三题还有 显然是可以网络流的 但考虑每个点只能存在一个这个条件 刚开始我以为是建分层图..但发现这个时间复杂度太高了 其实我 ...

  3. BZOJ1260 [CQOI2007]涂色paint 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1260 题意概括 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂 ...

  4. HDU 3625 Examining the Rooms【第一类斯特灵数】

    <题目链接> <转载于 >>> > 题目大意:有n个锁着的房间和对应n扇门的n把钥匙,每个房间内有一把钥匙.你可以破坏一扇门,取出其中的钥匙,然后用取出钥匙打 ...

  5. SSL/TLS中间人攻击

    准备:kali.xp kali ip:192.168.14.157 目标ip:192.168.14.158 目标网关:192.168.14.2 使用工具:ettercap.sslstrip.arpsp ...

  6. STL之双向队列(dequeue)

    //双向队列 deque #include <deque> #include <cstdio> #include <algorithm> using namespa ...

  7. sql注入总结(一)--2018自我整理

    SQL注入总结 前言: 本文和之后的总结都是进行总结,详细实现过程细节可能不会写出来~ 所有sql语句均是mysql数据库的,其他数据库可能有些函数不同,但是方法大致相同 0x00 SQL注入原理: ...

  8. 3d角色模型 制作 全过程 。3d max 。3d role model making process.3d Max

    3d角色模型 制作 全过程 .3d max 3d role model making process.3 d Max 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134 ...

  9. [Coding Study]——目录

    Coding Study Source Code for cnblogs This is the source code for coding study, you can see my Coding ...

  10. FlarumChina SQL injection Vulnerability

    First,We need to download our vulnerable program in GitHub links:https://github.com/skywalker512/Fla ...