MediaMuxer.AddTrack(MediaFormat) 方法

定义

添加具有指定格式的曲目。

[Android.Runtime.Register("addTrack", "(Landroid/media/MediaFormat;)I", "")]
public int AddTrack (Android.Media.MediaFormat format);
[<Android.Runtime.Register("addTrack", "(Landroid/media/MediaFormat;)I", "")>]
member this.AddTrack : Android.Media.MediaFormat -> int

参数

format
MediaFormat

轨道的媒体格式。这不能是空的 MediaFormat。

返回

此新添加的跟踪的跟踪索引,应在该跟踪中使用 #writeSampleData

属性

注解

添加具有指定格式的曲目。

下表汇总了对跨 Android 版本的特定格式键的支持。 需要用“+:”标记的键。

<表样式=“width: 0%”><thead<>tr<>th rowspan=2>OS Version(s)</th<>td colspan=3>MediaFormat keys used for</th/tr><tr<>th>All Tracks</<>>th Audio< Tracks/th>< Video Tracks</>><th></tr<>/thead><tbody><tr><td><android.os.Build.VERSION_CODES#JELLY_BEAN_MR2/td><rowspan=7>+:<MediaFormat#KEY_MIME /td><td tdrowspan=3>+: ,<br +: MediaFormat#KEY_SAMPLE_RATEMediaFormat#KEY_CHANNEL_COUNT,<br>> +: <强>编解码器特定的数据<sup>AAC</sup></strong></td<>td rowspan=5>+: MediaFormat#KEY_WIDTH,br +:<>MediaFormat#KEY_HEIGHT,<br> noKEY_ROTATION, use<#setOrientationHint setOrientationHint() sup.mp4</sup,br>>< +: <强>编解码器特定的数据<sup>> AVC, MPEG4</sup></strong></td/tr<><>td></td>android.os.Build.VERSION_CODES#KITKAT<></tr><><td/td><android.os.Build.VERSION_CODES#KITKAT_WATCH></tr<>><td/td<android.os.Build.VERSION_CODES#LOLLIPOP> td><rowspan=4>,以及<br> +: <强>编解码器特定的数据<sup>Vorbis & .webm</sup></strong></td><></tr tr<>td<>android.os.Build.VERSION_CODES#LOLLIPOP_MR1/td<>/tr><><td/td td as>android.os.Build.VERSION_CODES#M<><>上面,加上<br><MediaFormat#KEY_BIT_RATEsup>AAC</sup></td/tr><><td></td td<>td>><android.os.Build.VERSION_CODES#N,以及<br<>-- {link MediaFormat#KEY_MAX_BIT_RATE}<sup>AAC, MPEG4</sup,br><> --MediaFormat#KEY_BIT_RATE<>sup>MPEG4</sup,br> sup>#, .webm</sup,br<>MediaFormat#KEY_HDR_STATIC_INFO<><>MediaFormat#KEY_COLOR_STANDARD<sup>#</sup,br><>MediaFormat#KEY_COLOR_TRANSFER< sup#</sup,br>< sup>>#</sup,br>>><MediaFormat#KEY_COLOR_RANGE< +: <强>编解码器特定的数据<sup>HEVC</sup></strong,br>>< codec-specific data<sup>VP9</sup></td/tr><><tr td<> colspan=4<>p class=note><strong>Notes:</strong><br> #:存储到容器元数据中。<br> .mp4,.webm…:对于列出的容器<br> MPEG4,AAC…:对于列出的编解码器 </td/tr<><>td>< colspan=4><p class=请注意>,必须使用此方法指定跟踪的编解码器特定的数据。 此外,不得通过 #writeSampleData writeSampleData() 调用传递/指定特定于编解码器的数据。 </td></tr></tbody></table>

下表汇总了跨 Android 版本的容器的编解码器支持:

<表样式=“width: 0%”>thead><tr><th rowspan=2>OS Version(s)</th><td colspan=3>Codec support</th></tr><tr><th>OutputFormat#MUXER_OUTPUT_MPEG_4 MP4</th>><outputFormat#MUXER_OUTPUT_WEBM WEBM</th></tr></thead<>tbody<>tr<>tdandroid.os.Build.VERSION_CODES#JELLY_BEAN_MR2<>/td><td rowspan=6,br,MediaFormat#MIMETYPE_AUDIO_AMR_NB NB-AMR>MediaFormat#MIMETYPE_AUDIO_AAC AAC<><<br,br,br,br><MediaFormat#MIMETYPE_VIDEO_MPEG4 MPEG-4><>>MediaFormat#MIMETYPE_VIDEO_H263 H.263MediaFormat#MIMETYPE_VIDEO_AVC AVCMediaFormat#MIMETYPE_AUDIO_AMR_WB WB-AMR< (H.264)</td td<>rowspan=3>不支持</td<>/tr><tr<>td<>android.os.Build.VERSION_CODES#KITKAT/td/><tr tr<>td>android.os.Build.VERSION_CODES#KITKAT_WATCH</<>td></><><tr tr tdandroid.os.Build.VERSION_CODES#LOLLIPOP></<>td td rowspan=3,br>>MediaFormat#MIMETYPE_VIDEO_VP8 VP8MediaFormat#MIMETYPE_AUDIO_VORBIS Vorbis<</td<>/tr><tr<>td/td>android.os.Build.VERSION_CODES#LOLLIPOP_MR1<></tr><<>tr td/td>android.os.Build.VERSION_CODES#M</tr><><td></tdandroid.os.Build.VERSION_CODES#N>< td<>td>,加上<brMediaFormat#MIMETYPE_VIDEO_HEVC HEVC> (H.265)</td><td>,如上所示,加上<br><MediaFormat#MIMETYPE_VIDEO_VP9 VP9/td></tr></tbody></table>

适用于 . 的 android.media.MediaMuxer.addTrack(android.media.MediaFormat)Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于