【问题标题】:AVURLAsset load webvtt fileAVURLAsset 加载 webvtt 文件
【发布时间】:2015-10-14 02:29:56
【问题描述】:

我正在尝试使用 AVURLAsset 加载 webvtt 文件。

下面是我的代码。

    NSString *urlAddress = @"http://somewhere/some.vtt";
    NSURL *urlStream = [[NSURL alloc] initWithString:urlAddress];
    AVAsset *avAsset = [AVURLAsset URLAssetWithURL:urlStream options:nil];

    NSArray *requestKeys = [NSArray arrayWithObjects:@"tracks",@"playable",nil];
    [avAsset loadValuesAsynchronouslyForKeys:requestKeys completionHandler:^{
    dispatch_async(dispatch_get_main_queue(),^{

        //complete block here
        AVKeyValueStatus status =[avAsset statusOfValueForKey:@"tracks" error:nil];
        if(status == AVKeyValueStatusLoaded) {

            //loaded block !
            //Question 1
            CMTime assetTime = [avAsset duration];
            Float64 duration = CMTimeGetSeconds(assetTime);
            NSLog(@"%f", duration);

            //Question 2
            AVMediaSelectionGroup *subtitle = [avAsset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicLegible];
            NSLog(@"%@", subtitle);
        }
        else {
            //don’t load block ! 
        }
    });
}];

问题1:总是进入“Loaded Block”,但是我发现avAsset的duration不完整,是不是数据没有加载?应该怎么修改?

问题 2:我试图将它用于我的 avplayer 的字幕,但 AVMediaSelectionGroup 始终为空。我该怎么办?

【问题讨论】:

  • 您好,这行得通吗,我试过了,但它不工作?有什么想法吗?
  • 你发现了吗?有更新吗?

标签: ios avfoundation avurlasset webvtt


【解决方案1】:

对于问题 1,将duration 添加到您的密钥中:

NSArray *requestKeys = @[@"tracks",@"playable", @"duration"];

【讨论】:

  • 您好,感谢您的回复。我添加了它,但结果是一样的。
  • 哦,不。您是否尝试过在 Mobile Safari 中打开 URL?
  • 听起来不对。你有文件的公共链接吗?
  • 好的 - 我明白了,你想做什么?持续时间对我有用,但 AVMediaSelectionGroup 似乎只适用于电影中的字幕。
  • 你得到的持续时间是?
【解决方案2】:

我在这里发布了一个解决方案:https://stackoverflow.com/a/37945178/171933 基本上你需要使用AVMutableComposition 来加入带字幕的视频,然后播放该作品。

关于你的第二个问题:mediaSelectionGroupForMediaCharacteristic 似乎只有在这些“特征”已经被烘焙到媒体文件或你的 m3u8 流中时才被支持,根据this statement by an Apple engineer (bottom of the page)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-17
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多