Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
m3u8文件未在Android Emulator中播放_Android_Android Emulator_Android Mediaplayer_Android Source - Fatal编程技术网

m3u8文件未在Android Emulator中播放

m3u8文件未在Android Emulator中播放,android,android-emulator,android-mediaplayer,android-source,Android,Android Emulator,Android Mediaplayer,Android Source,我正在尝试在Android Emulator中播放m3u8文件。 http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8 无法播放视频,但可以听到音频。 我得到以下错误E/OMXNodeInstance(39):OMX_GetExtensionIndex失败 我跟踪了这些调用,发现视频解码器没有正确实例化, 我发现,OMXNodeInstance::enablegraphicsbuffers正在被调用,并且调用, OMX_E

我正在尝试在Android Emulator中播放m3u8文件。
http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8

无法播放视频,但可以听到音频。
我得到以下错误
E/OMXNodeInstance(39):OMX_GetExtensionIndex失败

我跟踪了这些调用,发现视频解码器没有正确实例化,
我发现,
OMXNodeInstance::enablegraphicsbuffers
正在被调用,并且调用,
OMX_ERRORTYPE err=OMX_GetExtensionIndex(…,const_cast(“OMX.google.android.index.enableAndroidNativeBuffers”),…)
然后调用
OMX\u ERRORTYPE SoftOMXComponent::getExtensionIndex

但此功能没有实现。
它只返回UnfinedError(下面的代码)

有人能帮我克服这个GetExtensionIndex失败吗。 记录在下面

/ChromiumHTTPDataSource( 39): connect to http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8 @0
V/NuPlayer( 39): scanning sources haveAudio=0, haveVideo=0
V/NuPlayer( 39): in instantiateDecoder at 693 audio = 0 
V/NuPlayer( 39): in instantiateDecoder at 693 audio = 1 
I/ESQueue ( 39): found AAC codec config (22050 Hz, 1 channels)
I/avc_utils( 39): found AVC codec config (192 x 144, Baseline-profile level 1.1)
V/MediaPlayer( 583): in getCurrentPosition at : 425
V/MediaPlayerService( 39): getCurrentPosition
V/MediaPlayerService( 39): [1] getCurrentPosition = 0
V/NuPlayer( 39): scanning sources haveAudio=0, haveVideo=0
V/NuPlayer( 39): in instantiateDecoder at 701 mime = video/avc
V/ACodec ( 39): Now uninitialized
V/ACodec ( 39): Now uninitialized
V/ACodec ( 39): onAllocateComponent
I/MediaPlayerService( 39): MediaPlayerService::getOMX()
V/SoftOMXPlugin( 39): makeComponentInstance 'OMX.google.h264.decoder'
V/SoftOMXPlugin( 39): makeComponentInstance at 106 
V/ACodec ( 39): onAllocateComponent
I/MediaPlayerService( 39): MediaPlayerService::getOMX()
V/SoftOMXPlugin( 39): makeComponentInstance at 128 
V/SoftOMXPlugin( 39): makeComponentInstance 'OMX.google.aac.decoder'
V/SoftOMXPlugin( 39): makeComponentInstance at 106 
V/SoftOMXPlugin( 39): makeComponentInstance at 128 
V/ACodec ( 39): [OMX.google.h264.decoder] Now Loaded
V/ACodec ( 39): onConfigureComponent
V/ACodec ( 39): configureCodec at 870 
V/ACodec ( 39): setupVideoDecoder at 1400 
V/ACodec ( 39): setupVideoDecoder at 1402 mime = video/avc 
V/ACodec ( 39): setupVideoDecoder at 1406 
V/ACodec ( 39): setupVideoDecoder at 1414 
V/ACodec ( 39): setupVideoDecoder at 1421 
V/ACodec ( 39): setupVideoDecoder at 1429 
V/ACodec ( 39): setupVideoDecoder at 1437 
V/ACodec ( 39): initNativeWindow at 1962 
V/ACodec ( 39): initNativeWindow at 1967 
E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745
V/ACodec ( 39): onStart
V/ACodec ( 39): [OMX.google.h264.decoder] Now Loaded->Idle

尝试在真实设备中运行它,正如我所知,具有某些特定sdk(如3.1)的模拟器在播放m3u8文件时崩溃。如果没有解决这个问题,也许你可以使用一些第三方插件,比如Vitamio,这是一个非常有趣的问题。从你们的日志中,我想引用这一部分

E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745
这两条错误消息是在调用
ACodec
initNativeWindow
过程中收到的,作为从
LOADED
转换到
IDLE
状态的一部分。从
OMX
的角度来看,作为
加载到空闲
转换的一部分,被调用。作为此函数的一部分,将调用

在中,存在两种不同的条件。第一种情况是,用户向编解码器提供了
nativeWindow
Surface
SurfaceTexture
以将其输出写入。另一种情况是用户没有向
MediaPlayer
引擎提供
Surface

V/ACodec ( 39): onStart
V/ACodec ( 39): [OMX.google.h264.decoder] Now Loaded->Idle
从这些日志中,可以观察到
initNativeWindow
的返回代码正常,这是仅当控制分支到
mnativeEnableWindow
为空时才可能的。
ACodec
未捕获
false
案例的返回代码,这意味着组件已成功转换为
IDLE
状态

简而言之,该问题主要是由于未向
MediaPlayer
提供
曲面而引起的

一些建议:

由于您使用的是
NuPlayer
,我建议您检查是否调用了,以及
non-NULL
对象是否从
NuPlayer
传递到下游组件

MediaPlayer
的角度来看,应该将曲面设置为
setSurface
调用的一部分

通常,您需要为视频解码器链提供一个
接收器

E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745
调用OMX\u GetExtensionIndex进入SoftOMXComponent(),它只是一个存根函数,总是返回OMX\u ErrorUndefined,这会导致启用GraphicBuffers失败

E/OMXNodeInstance( 39): OMX_GetExtensionIndex failed
V/OMXNodeInstance( 39): enableGraphicBuffers at 301 OMX_GetExtensionIndex returned 2147487745