今天在做一个视频播放器,做好了之后发给别人,但是别人那里却播放不了。找了下原因,我用的是绝对路径,发给别人之后,别人在打开,肯定路径就不对了罗。 
之前,我的路径是直接从左边把视频文件拖到代码区域得到的路径,如下图:

这样,我可以播放,但是发给别人,别人那里就播放不了,因为在别人那里路径就改变了。所以,那就要换一种获取路径的方法。我们工程里面的图片和视频文件都放在应用程序包里面,所以我们获取应用程序包的路径,然后在拼上我们视频文件的名字,就可以得到视频相对于工程的路径了。

把视频文件拷贝到你的项目中时,一定要添加到应用程序包中,记得把下面这个勾选中,否则视频就算添加到你的工程中了,但是没有拷贝到应用程序包中,一样还是播放不了的。

然后添加如下代码:

<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">- (<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">void</span>)viewDidLoad {[<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">super</span> viewDidLoad];<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//获取视频播放路径</span><span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *str = [[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSBundle</span> mainBundle] resourcePath];<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> *filePath = [<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSString</span> stringWithFormat:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%@%@"</span>,str,@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"/123.mp4"</span>];<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSLog</span>(@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"%@"</span>,filePath);<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSURL</span> *sourceMovieURL = [<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">NSURL</span> fileURLWithPath:filePath];AVAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>];AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];playerLayer<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.frame</span> = CGRectMake(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">20</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">300</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">300</span>);playerLayer<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.videoGravity</span> = AVLayerVideoGravityResizeAspect;[<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.view</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.layer</span> addSublayer:playerLayer];[player play];<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIView</span> *videoMaskView = [[<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIView</span> alloc] initWithFrame:CGRectMake(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.view</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.frame</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.size</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.width</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">250</span>)];videoMaskView<span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.backgroundColor</span> = [<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">UIColor</span> colorWithRed:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">255.0</span>f green:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">255.0</span>f blue:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">255.0</span>f alpha:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.3</span>];[<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span><span class="hljs-variable" style="color: rgb(102, 0, 102); box-sizing: border-box;">.view</span> addSubview:videoMaskView];}
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li></ul>

输出来的路径是这样的:

<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">/Users/yuancan/Library/Developer/CoreSimulator/Devices/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">9E147531</span><span class="hljs-attribute" style="box-sizing: border-box;">-EAE4</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">447E-9246</span><span class="hljs-attribute" style="box-sizing: border-box;">-F36D5D476972</span>/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">data</span>/Containers/Bundle/Application/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">811</span>A4649<span class="hljs-attribute" style="box-sizing: border-box;">-D753</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">47E2</span><span class="hljs-subst" style="color: rgb(0, 0, 0); box-sizing: border-box;">-</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">8</span>D86<span class="hljs-attribute" style="box-sizing: border-box;">-E07D24CC9F06</span>/TestVideoPlay<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">.</span>app/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">123.</span>mp4</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

打开路径看,我们可以看到视频在应用程序包文件中:

iOS 获取本地视频播放路径相关推荐

  1. iOS 获取本地相册图片或视频

    1.先判断iOS 相机相册的权限检测 相关链接 https://www.jianshu.com/p/8a944534e0ee 2.iOS 获取本地相册图片 iOS 获取本地相册图片一 iOS 获取本地 ...

  2. 关于IOS获取本地通讯录信息(包含iOS9.0前后)

    在ios开发当中,获取用户本地的通讯录功能愈加频繁的出现,七两自己也在自己公司的项目当中遇到的获取本地的通讯录信息的功能(俗称"种子用户功能",太可怕了).对此七两总结了自己使用本 ...

  3. iOS 获取本地图片URL

    文件目录内图片URL let path = Bundle.main.path(forResource: 图片名字, ofType: 文件类型) let url = URL(fileURLWithPat ...

  4. ios 获取本地音乐

    给大家分享一个获取ios本地音乐的办法. 首先要引入这两个类库 然后这就是获取本地音乐的代码 可以看到下面的这个属性MPMediaItemPropertyAssetURL 是获取本地音乐的url 的 ...

  5. html5加js实现本地文件读取和写入并获取本地文件路径

    HTML5提供了一台API可以实现文件的读写,文件读取利用API是FileReader 代码如下: 读取本地文件 <!doctype html> <html lang="e ...

  6. iOS获取本地视频列表数据

    iOS本地的视频存在于三个地方: iTunes中影片中导入的视频文件 iTunes中通过共享文件导入的视频文件,即应用沙盒 摄像头拍摄的视频文件,可以相册找到 这三处获取视频列表方式不同. iTune ...

  7. js/jq input file获取本地文件路径 将要上传图片显示到页面

    <div class="ge_pic_icon_Infor"><img src="images/moren.jpg"/> </di ...

  8. ios 获取沙盒文件名_IOS获取各种文件目录路径的方法

    iphone沙箱模型有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory( ...

  9. 如何获取网络视频(或者说后台返回视频URL)第一帧图片以及获取本地视频的第一帧图片

    在项目开发的时候,有可能会有这样的一种需求:有一段视频需要展示给用户,在界面上先展示视频上的某一帧图片,用户点击的时候再去获取视频资源进行播放.这时,服务器会先给我们返回视频的url,这个时候就需要通 ...

最新文章

  1. Excel数据拆分-分列
  2. 拷贝构造函数的参数类型必须是引用
  3. Spring Cloud实战小贴士:Zuul的饥饿加载(eager-load)使用
  4. C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)
  5. Deeplearnng.AI第四部分第二周、经典网络
  6. linux 共享移动硬盘,随时登陆上QQ 自带Linux移动硬盘实战
  7. c语言共享内存,在爷儿俩进程间使用共享内存(共享内容含指针)
  8. ES面试基础知识要点
  9. i9可以装服务器系统吗,i9服务器
  10. ======第四章存储器管理======
  11. 洛谷——P2433 【深基1-2】小学数学 N 合一
  12. 装箱问题 vijos
  13. Mars3D讲解视频
  14. 软考高级系统架构设计师:软件系统建模方法及其应用
  15. 汽车维修企业管理【10】
  16. (初阶版本)扫雷游戏(C语言)娱乐教程
  17. Windows 系统维护
  18. 分数化成有限小数的方法_小数化成分数的方法
  19. python连乘函数_python 连乘
  20. 事务机制:Redis能实现ACID属性吗?

热门文章

  1. 将项目部署至云服务器的详细过程 以community项目为例
  2. RBAC权限管理设计
  3. 行列式按行(列)展开定理——6种行列式的展开方式
  4. JS中回调函数的三种写法!
  5. 如何用Eclipse运行一个Java web项目
  6. Python学习之道-打包成exe程序
  7. Windows10 双网卡配置,轻松实现内外互通
  8. mongodb+java实现日志的日活与月活查询
  9. python图像处理库哪个最快_比较和对比Python的许多图像处理库
  10. 一张表格分成两页打印_excel一个表格自动分成两页怎么办