首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么加载后AVURLAsset的轨道数组是空的?

为什么加载后AVURLAsset的轨道数组是空的?
EN

Stack Overflow用户
提问于 2012-09-16 21:31:17
回答 1查看 2.5K关注 0票数 3

我试图得到一个AVURLAsset的视频轨道的自然大小。因此,我正在用loadValuesAsynchronouslyForKeys:completionHandler:加载资产loadValuesAsynchronouslyForKeys:completionHandler:。在完成处理程序中,当状态为AVKeyValueStatusLoaded时,我查看asset.tracks,它是空的。我希望能找到至少一个音频和视频轨道。为什么音轨数组是空的?

这是我的代码:

代码语言:javascript
复制
#import <AVFoundation/AVFoundation.h>

int main(int argc, char *argv[])
{
    __block BOOL loaded = NO;
    AVURLAsset *asset;
    @autoreleasepool
    {
        NSURL *url = [NSURL URLWithString:@"https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_4x3/bipbop_4x3_variant.m3u8"];
        asset = [AVURLAsset URLAssetWithURL:url options:nil];
        [asset loadValuesAsynchronouslyForKeys:[NSArray arrayWithObject:@"tracks"] completionHandler:^{
            loaded = YES;
            dispatch_async(dispatch_get_main_queue(), ^{
                NSError *error = nil;
                AVKeyValueStatus status = [asset statusOfValueForKey:@"tracks" error:&error];
                if (status == AVKeyValueStatusLoaded)
                    NSLog(@"asset.tracks (%ld): %@", [asset.tracks count], asset.tracks);
                else
                    NSLog(@"error (%ld): %@", status, error);
            });
        }];
    }

    while (!loaded)
        [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];

    return 0;
}

在MountainLion10.8.1上运行此代码将记录如下:

代码语言:javascript
复制
asset.tracks (0): (
)

UPDATE一些人向我指出,我可能无法得到轨道,因为我使用。因此,任何方法(使用音轨或不使用)获得的大小,目前播放的视频将是一个可接受的答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-18 08:01:49

由于该资产与HTTP流一起使用,所以它没有任何跟踪。检索视频大小的另一种方法是使用KVO观察player项presentationSize属性:

代码语言:javascript
复制
AVPlayer *player = [AVPlayer playerWithPlayerItem:[AVPlayerItem playerItemWithAsset:asset]];
[player addObserver:self forKeyPath:@"currentItem.presentationSize" options:NSKeyValueObservingOptionNew context:NULL];
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12450889

复制
相关文章

相似问题

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