iOS 问答集 - 第一期

首发地址:https://github.com/sunbohong/iOS-question-set

  • Xcode 调试时,如何显示一个基本变量类型的二进制?

通过 po/x 32 即可显示变量的二进制内容。

扩展阅读:http://lldb.llvm.org/lldb-gdb.html

  • 一位小密圈的朋友遇到一个问题,当音频超过20s时,通过 AVURLAsset 读取的音频时长不准确。原始代码如下。

AVURLAsset  *audioAsset =[AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:urlStr] options:nil];

CMTime audioDuration = audioAsset.duration;

float audioDurationSeconds =CMTimeGetSeconds(audioDuration);

NSLog(@"播放   大小-== %f M   长度:   %f  地址: %@",Byte/1024.0/1024.0,audioDurationSeconds,urlStr);

答案: AV 库的很多内容是经过充分优化的(懒加载)。如果需要获取准确的音频时长,需要通过以下代码读取。


NSArray *keys = @[@"duration"];

AVURLAsset  *audioAsset =[AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:urlStr] options:@{AVURLAssetPreferPreciseDurationAndTimingKey:@YES}];

    [audioAsset loadValuesAsynchronouslyForKeys:keys completionHandler:^{

        CMTime audioDuration = audioAsset.duration;

        float audioDurationSeconds =CMTimeGetSeconds(audioDuration);

        NSLog(@"播放   大小-== %f M   长度:   %f  地址 :%@",Byte/1024.0/1024.0,audioDurationSeconds,urlStr);

    }];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 2000年,伊利诺伊大学厄巴纳-香槟分校(University of Illinois at Urbana-...
    星光社的戴铭阅读 15,965评论 8 180
  • 转载 与调试器共舞 - LLDB 的华尔兹: https://objccn.io/issue-19-2/ 推荐:i...
    F麦子阅读 3,357评论 0 10
  • [转]浅谈LLDB调试器文章来源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc阅读 2,591评论 2 6
  • 与调试器共舞 - LLDB 的华尔兹 nangege 2014/12/19 你是否曾经苦恼于理解你的代码,而去尝试...
    McDan阅读 889评论 0 0
  • 【转载】曾梦想仗剑走天涯 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)->边...
    06a6a973d7ab阅读 3,900评论 2 20