iPhone 自带音乐 App 的神奇切歌 Bug - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Sharcle
V2EX    Apple

iPhone 自带音乐 App 的神奇切歌 Bug

  •  
  •   Sharcle 2022-10-25 21:13:27 +08:00 1221 次点击
    这是一个创建于 1086 天前的主题,其中的信息可能已经有所发展或是发生改变。

    OP 从 iPod 时代养成了用 iTunes 传歌到移动设备的习惯,所以现在依然会用系统自带的音乐 App 放歌。升级 iOS16.1 之后突然发现昨天用无线局域网传进来的两张专辑有一个神奇的 Bug:
    只要一首歌播放到最后的十几秒,就会被强行切到下一首歌。与此同时 UI 仍然显示正在播放上一首歌的最后十几秒。如果这时候手动切到下一首,音乐会在和正常切歌一样的短暂停顿后继续放下去,UI 也会切换到下一首歌相应的播放位置(而不是从头开始)。如果什么都不做等待最后十几秒走完,歌曲会无缝继续播放,UI 会直接切换到下一首歌已经播放了十几秒的状态。
    这个 Bug 只出现在 OP 昨晚用无线局域网传输的两张专辑上。这两张专辑里的每一首歌都会触发这个 Bug 。而昨天稍晚是用数据线传输的歌曲则无此问题。

    9 条回复    2022-10-26 07:45:10 +08:00
    wyd011011daniel
        1
    wyd011011daniel  
       2022-10-25 21:15:52 +08:00
    会不会是歌没传完
    Sharcle
        2
    Sharcle  
    OP
       2022-10-25 21:22:21 +08:00 via iPhone
    @wyd011011daniel 如果手动把进度拉到一首歌的最后十几秒,大概率不触发这个 Bug ,会正常把歌放完。
    Sharcle
        3
    Sharcle  
    OP
       2022-10-25 21:24:47 +08:00 via iPhone
    @Sharcle 这个特性让我一度怀疑人生。因为两张都是新专辑,曲目我还不太熟悉。听着听着突然被切歌,打开 App 往回倒几秒再放却又正常播放了。不禁让我怀疑究竟是我的脑子还是这个世界出了问题。
    Sharcle
        4
    Sharcle  
    OP
       2022-10-25 21:49:53 +08:00 via iPhone
    我刚刚甚至在 Mac 的音乐 App 上复现了一次……并且找到了一个规律。在 Mac 上,如果使用扬声器播放就不会触发这个 Bug ,而使用 AirPods 就会触发这个 Bug 。
    Sharcle
        5
    Sharcle  
    OP
       2022-10-25 21:58:59 +08:00 via iPhone
    现在还不能排除我音源的问题。但是 Mac 的这个表现也太匪夷所思了。
    Sharcle
        6
    Sharcle  
    OP
       2022-10-25 22:15:00 +08:00 via iPhone
    定位到问题了。FLAC 用 XLD 转换成 ALAC 的过程中会莫名其妙地短上十几秒。把 ALAC 拿到 VOX 里播放,列表里显示时长有 3:22 ,但播放进度只显示 3:05 。这两个时间对不上。
    Sharcle
        7
    Sharcle  
    OP
       2022-10-25 22:22:02 +08:00 via iPhone
    初步结论:XLD 在转换 24bit 48kHz 的 FLAC 为 ALAC 的时候,会出现音频时长错误的 Bug
    Sharcle
        8
    Sharcle  
    OP
       2022-10-25 23:36:33 +08:00
    艹,这下真的破案了。不是 XLD 的问题,甚至也不能算是 iOS 的 Bug 。

    iTunes Plus AAC 内嵌了一个叫做 ITUNSMPB 的 Tag ,里面记录了 Encoder Delay 、Padding 以及 Original Sample Count 的信息。这个信息和采样率以及文件长度都有关系。iTunes 可以用这个 Tag 定义播放间隔,实现无间隔播放等功能。因为我习惯把 iTunes Plus AAC 的 Tag 整个复制到 FLAC 上,再把 FLAC 转成 ALAC 加入资料库,所以这个 Tag 也一并继承到了转换后的 ALAC 上。问题在于我用的 iTunes Plus AAC 规格是 24bit 44.1kHz ,而我的 FLAC 规格是 24bit 48kHz 。采样率变化之后间隔信息本来也应该相应变化的,但如果 iTunes 读取了低采样率文件的间隔信息,就会出现音频提前结束播放的情况。。。
    wyd011011daniel
        9
    wyd011011daniel  
       2022-10-26 07:45:10 +08:00 via iPhone
    @Sharcle 哈哈哈哈哈,找到原因就好
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5091 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 09:19 PVG 17:19 LAX 02:19 JFK 05:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86