首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AVURLAsset loadValuesAsynchronouslyForKeys: completionHandler:永不在设备上触发

AVURLAsset loadValuesAsynchronouslyForKeys: completionHandler:永不在设备上触发
EN

Stack Overflow用户
提问于 2011-09-02 13:01:08
回答 1查看 7.4K关注 0票数 5

我正在同步地使用next代码片段来loadValues,因此loading = NO会触发。我对AVAssetExportSession exportAsynchronously也有同样的问题。--不仅仅是在设备上工作。

代码语言:javascript
运行
复制
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:AVURLAssetPreferPreciseDurationAndTimingKey];
AVURLAsset *asset = [AVURLAsset URLAssetWithURL:URL options:options];

NSArray *keys = [NSArray arrayWithObjects:@"duration", @"tracks", nil];

__block bool loading = YES;

[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^(void) {
            loading = NO;
}];

while (loading)[[NSRunLoop currentRunLoop] runUntilDate:[[NSDate date] dateByAddingTimeInterval:0.5]];

求你了救命!我的大脑正在融化。

EN

回答 1

Stack Overflow用户

发布于 2012-03-31 18:21:02

下面是我使用的代码:

代码语言:javascript
运行
复制
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"intro" ofType:@"m4v"]];

    self.asset = [[AVURLAsset alloc] initWithURL:url options:nil];
    NSString *tracksKey = @"tracks";

    [self.asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:tracksKey] completionHandler:^{
// Other code here for AVPlayer
}];

我不使用任何选择或任何类似性质的东西。我相信你已经看到了苹果的文档例子:

http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html

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

https://stackoverflow.com/questions/7283786

复制
相关文章

相似问题

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