首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C4Movie未加载

C4Movie未加载
EN

Stack Overflow用户
提问于 2013-09-25 07:26:23
回答 1查看 73关注 0票数 1

我一直在尝试将电影剪辑添加到项目中,但就是不起作用。我已经确保*.mov文件存在于文件目录中。

但是如果我尝试在movieNamed:@"blahblah.mov“上添加初始片段,它就能完美地工作。

不确定问题是否出在代码中,或者我尝试使用的影片剪辑无效(文件不是太大或其他什么)。

可以解释这个问题吗?

下面是代码

代码语言:javascript
复制
#import "C4WorkSpace.h"

C4Movie *movie;

@implementation C4WorkSpace

-(void)setup {
    movie = [C4Movie movieNamed:@"thinkdifferent.mov"];
    movie.width = self.canvas.width;
    CGPoint centerOfScreen = CGPointMake(self.canvas.width/2, self.canvas.height/2);
    movie.center = centerOfScreen;
    [self.canvas addMovie:movie];
}

@end

以下是带有错误的代码环境的图像:

和指向图像的直接链接:Error Image

EN

回答 1

Stack Overflow用户

发布于 2013-09-28 02:09:20

我看过你发给我的链接,发现有几种不同的方式可能会让你出错。

首先,我必须从那个链接下载电影...但是,当我在Safari中这样做时,它出现了一个问题,如下所示:

  1. Safari将链接下载为mov文件
  2. 文件大小为433kb...pretty small
  3. 这让我相信Safari下载的实际上是一个使用Safari Developer extensions
  4. Could挖掘站点代码的.mov容器只从Safari

下载.mov容器

我下载的实际上是一个容器,而不是真正的源电影,这在C4中是行不通的,因为它总是只引用电影,而不是对象本身。

因此,我尝试了一下Chrome的开发工具,并能够将文件保存为源代码。

  1. 来自Chrome,该文件以mp4格式保存,大小为75.6MB
  2. 尝试将该文件直接加载到C4项目中,并成功了。

以下代码适用于我:

代码语言:javascript
复制
#import "C4WorkSpace.h"

@implementation C4WorkSpace {
    C4Movie *m;
}

-(void)touchesBegan {
    if(m == nil) {
        m = [C4Movie movieNamed:@"iPhone.mp4"];
        m.shouldAutoplay = YES;
       [self.canvas addMovie:m];
     }
}

@end 

我推迟了电影的开始,因为它是一个大文件。你不会真的想让这么大的一堆文件直接放在你的项目中,但为了测试它是有效的。我开始在touchesBegan中创建电影,以便应用程序在打开应用程序时不会在加载电影时陷入困境。

好吧,这可能并不能真正解决你的问题。因此,我测试了从大电影源文件创建一个小剪辑,步骤如下:

在12秒的剪辑中打开电影(点击裁剪后的电影(或文件> Export)

  • Choose iPad,iPhone 4,

  • TV Quicktime

  • Trim cmd+t)

  • Export m4v

  • )开始裁剪工作,将其拖动到我的原始项目中,重命名变量以匹配新文件

  • it works!

所以,我怀疑这个答案的第一部分可能是你被挂起的地方。该文件实际上不是电影文件,而是指向某些其他媒体的指针。我之所以想到这一点,是因为我记得,当我为web导出Quicktime mov时,它实际上创建了一个介质文件夹,其中包含一个引用另一个文件夹中的其他介质的.mov文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18993768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档