2

AAC フレームのヘッダーを形成するために、Objective-C スクリプトを Swift に変換しました。ただし、コードはアプリで実行できず、EXC_BAD_ACCESS でクラッシュします。コードをプレイグラウンドにコピーすると、エラーなしで期待どおりに出力されます。動作するはずなので、どこに行けばよいかわかりません。私はいつでも Objective-C バージョンを使用できましたが、それは問題を回避するように感じます。

ここに画像の説明を入力

func adtsDataForPacketLength(packetLength: Int) -> NSData {
    let adtsLength = 7
    let profile = 2
    let freqIdx = 4
    let chanCfg = 1
    let fullLength = adtsLength + packetLength;

    var packet = [UInt8]()
    packet.append(UInt8(0xFF))
    packet.append(UInt8(0xF9))
    packet.append(UInt8(((profile-1)<<6) + (freqIdx<<2) + (chanCfg>>2)))
    packet.append(UInt8(((chanCfg&3)<<6) + (fullLength>>11)))
    packet.append(UInt8((fullLength&0x7FF) >> 3))
    packet.append(UInt8(((fullLength&7)<<5) + 0x1F))
    packet.append(0xFC)
    return NSData(bytes: packet, length: packet.count)
}
4

0 に答える 0