我正在开发一个程序,它有一组严格的“阶段”用于视频录制......想象它就像一个视频展台。我在OSX Lion上运行程序,完全用Cocoa编写。
'阶段'如下:
第1阶段,第2阶段和第4阶段每次都能完美运作。第3阶段第3阶段完美运作。
在第二次或稍后的整个过程中,视频播放(由嵌入在NSPanel中的QTMovieView
完成)仍然设置为来自FIRST直播的视频。 / p>
我有两种方法设置,一种是通过按下按钮激活,另一种是通过程序中的其他代码激活。这两种方法都有消防,我很肯定。我不知道为什么[mPlaybackView setMovie: lclMov]
没有设置新电影......
澄清(基于以下代码):
TEMP_STORE
处的文件确实存在(并且是新文件,而不是旧文件)[QTMovie movieWithFile:TEMP_STORE error:&err];
替换[[QTMovie alloc] initWithFile:TEMP_STORE error:&err]
(根据我在网上看到的建议)TEMP_STORE
处的文件是我程序中其他代码段录制的'.mov'文件赞赏任何和所有帮助!!!
- (IBAction) startPlayback: (id) sender {
NSError *err;
QTMovie *lclMov = [QTMovie movieWithFile:TEMP_STORE error:&err];
[instrPlayback orderOut:nil];
if (err != nil) {
[errorMessage setStringValue:[NSString stringWithFormat:@"%@", [err localizedDescription]]];
[errorDialog makeKeyAndOrderFront:nil];
} else {
[self writeString: CMD_PROCEED];
[mPlaybackView setMovie:lclMov];
[mPlaybackView gotoBeginning:nil];
[playbackDialog makeKeyAndOrderFront:nil];
}
}
- (void) stopPlayback {
QTMovie *lclMov = [mPlaybackView movie];
if ([lclMov canUpdateMovieFile]) {
if (![lclMov updateMovieFile]) {
[errorMessage setStringValue:@"Error Applying Updates to MOV File.\nAsk Lab Attendant for Help."];
[errorDialog makeKeyAndOrderFront:nil];
}
}
[playbackDialog orderOut:nil];
}
答案 0 :(得分:0)
对于将来遇到这种情况的人来说,这是我的解决方案:
我想我有点笨......但我知道这与从内存中取消分配视频有关。我得到的解决方案是导入QuickTime框架(由于我没有线索,与QTKit框架不同)并使用DisposeMovie()
中的Movies.h
方法
这么简单的解决方案,它给了我很多麻烦。
祝所有可能遇到同样问题的开发人员好运:)