質問

誰もがこれを働いていますか?私はCodeCprivatedataがめちゃくちゃになっていると思いますが、WaveFormtexフォーマータグを見つけることができません。 0xFF00、0x1016、および0x0116を試しました。私はMSDNのドキュメントを使用して、残りの文字列を完成させました。

私はこれをmmreg.h(wave_format_mpeg_adts_aac 0x1600)で見つけました(0x0016)。これが私が使うべきことだと思うでしょうが、それはどちらも機能しません。

0xFFを使用する場合は、Stream GetSampleASyncのADTSヘッダーが繰り返し呼び出されますが、再生はありません。私はFoobar、VLC、およびウィンドウメディアプレーヤーでプレイすることができるので、私はストリームが良いことを知っています。私が生のAACをMP4コンテナに固執するとき、それはSilverlightでうまく機能しているので、AAC設定はSilverlightでサポートされていることがわかります。

誰かがそれらのために働いている16進コードCPrivateTata文字列を私に供給することができますか?

編集:

これは私がうまくいくべきだと思うPrivateCodeCdata hex文字列の例です:

0x1016010000000000000000190

この文字列は、サンプルを試してもopenMediaAsync()からClosemedia()に直接移動します。 MSDNのドキュメントの例は、ここでのものと同じものを見つけます。 / a>。私はそれが少なくとも閉じる前にサンプルを試すことを期待しています。

役に立ちましたか?

解決

シルバーライトはAACやADTSラッパーに準拠していないようです...

MP4ファイルを(例えばMediainfoで)分析した場合は、AAC for AudicがADTSラッパーなしで表示されます。この場合、SilverlightがMP4ファイルに埋め込まれたAACオーディオを読むことができる理由です。

では、MediaStreamSourceでReportSampleCompleted()を呼び出す前に、各オーディオサンプルのADTSヘッダーを削除する必要があります。ADTSヘッダーは7または9バイト(CRCなしで)で構成されています。ADTSヘッダーの詳細については、このリンクを参照してください。

明らかに、あなたはCodeCprivateData文字列を正しいフォーラムに適応させる必要があります。AAC LC 48KHZ @ 96KBPSファイルのための私のものがあります:FF00020080BB000002E0000040010000200

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top