b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

stagefright框架_stagefright是什么_感染stagefright怎么办

电脑杂谈  发布时间:2017-05-31 00:02:39  来源:网络整理

1、 StageFright介绍

Android

froyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃

opencore,主要是做了一个OMX层,仅仅是对

opencore的omx-component部分做了引用。stagefright是在MediaPlayerService这一层加入的,和

opencore是并列的。Stagefright在 Android中是以shared

library的形式存在(libstagefright.so),其中的module --

AwesomePlayer可用来播放video/audio。stagefright框架

AwesomePlayer提供许多API,可以让上层的应用程序(Java/JNI)来调用。

2、 StageFright数据流封装

2.1》由数据源DataSource生成MediaExtractor。通过MediaExtractor::Create(dataSource)来

实现。Create方法通过两步来生成相应的 MediaExtractor(MediaExtractor.cpp):

 通过dataSource->sniff来探测数据类型

 生成相应的Extractor:

if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG4)

|| !strcasecmp(mime, "audio/mp4")) {

return new MPEG4Extractor(source);

} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_MPEG)) {

return new MP3Extractor(source, meta);

} else if (!strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_NB)

|| !strcasecmp(mime, MEDIA_MIMETYPE_AUDIO_AMR_WB)) {

return new AMRExtractor(source);

} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_W)) {

return new WExtractor(source);

} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_OGG)) {

return new OggExtractor(source);

} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MATROSKA)) {

return new MatroskaExtractor(source);

} else if (!strcasecmp(mime, MEDIA_MIMETYPE_CONTAINER_MPEG2TS)) {

return new MPEG2TSExtractor(source);

}

2.2》把音视频轨道分离,生成mVideoTrack和mAudioTrack两个MediaSource。代码如下(AwesomePlayer.cpp):

if (!haveVideo && !strncasecmp(mime, "video/", 6)) {

setVideoSource(extractor->getTrack(i));


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50196-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...