0

我正面临一个问题,我试图在 android 设备中使用 RTSP 播放流媒体视频。我正在使用 videoview,一切正常。在少数设备中,此视频源存在一些编码问题并且无法播放。在这些情况下,视频视图会显示一个对话框,其中包含“抱歉无法播放此视频”和“确定”按钮的消息。我想为这个 OK 按钮注册一个 OnClickListerner。我没有创建这个对话框,所以我的课堂上没有参考。猜猜这个对话框是一个框架。

我需要在这个 OnclickListerner 中做一些重要的操作,所以需要注册到这个对话框的 OK 按钮。我怎样才能做到这一点?

编辑:添加 Logcat 日志

您可以在日志末尾看到 MediaPlayer 显示一些错误。我有我的活动实现 onErrorListerner,并且我确实将我的活动设置为 videoView 的 onErrorListerner。但是我的errorlisterner仍然没有被调用......我希望尽快解决这个问题......任何帮助表示赞赏......

ERROR/MediaPlayer(4243): onHDMIStateChanged
ERROR/voaEngine(64): @@@VOLOG Info THD AFD4A830:    voaEngine.cpp  voaInit  22    Flag: 1
ERROR/voaEngine(64): @@@VOLOG Info THD AFD4A830:    voaEngine.cpp  voaSetParam  66    VOAP_IDF_onFirstRef
ERROR/voaEngine(64): @@@VOLOG Info THD AFD4A830:    voaEngine.cpp  voaSetParam  70    VOAP_IDF_initCheck
ERROR/CDllLoad(64): @@@VOLOG Info THD AFD4A830:    CDllLoad.cpp  LoadLib  221    Load module libvoOMXME.so!
ERROR/voaEngine(64): @@@VOLOG Info THD AFD4A830:    voaEngine.cpp  voaSetParam  74    VOAP_IDF_setDataSourceURL
ERROR/CVOMEPlayer(64): @@@VOLOG Info THD AFD4A830:    CVOMEPlayer.cpp  SetSource  147    Source: rtsp://a1052.l82402None.c82402.g.lq.akamaistream.net/7/1052/82402/v0001/cnbc.download.akamai.com/23727/sdp_!/apa1.sdp?auth=daEcpc4cOdnbLaAb.d_bnbMcLcwc7cFccc7-bnQmbB-bWG-QYQN&aifp=abcq&reporting=part="E*TRADE FINANCIAL"|parttype=STREAM
ERROR/CVOMEPlayer(64): @@@VOLOG Info THD AFD4A830:    CVOMEPlayer.cpp  SetSource  193    Count: 1
ERROR/voaEngine(64): @@@VOLOG Info THD 00016C08:    voaEngine.cpp  voaSetParam  89    VOAP_IDF_prepareAsync
ERROR/voOMXCfg(64): @@@VOLOG Info THD 0001FF38:    voCOMXBaseConfig.cpp  Open  389    Read 459 bytes
ERROR/voOMXCfg(64): @@@VOLOG Info THD 0001FF38:    voCOMXBaseConfig.cpp  Open  389    Read 474 bytes
ERROR/voOMXCfg(64): @@@VOLOG Error THD 0001FF38:   voCOMXBaseConfig.cpp  Open  366    The config file vomeComp_RTSP.cfg could not be opened!
ERROR/CVOMEPlayer(64): @@@VOLOG Info THD 0001FF38:    CVOMEPlayer.cpp  BuildGraph  387    start to build graph!
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  SetCoreFile  114    OMX Core file is libvoOMXOne.so
ERROR/Util(64): @@@VOLOG Info THD 0001FF38:    voCOMXBaseGraph.cpp  OMX_mmLoadLib  194    Load libvoOMXOne.so ... 0xb0011ccc
ERROR/voCOMXCoreLoader(64): @@@VOLOG Warning THD 0001FF38: voCOMXCoreLoader.cpp  SetCoreFile  163    m_fSetWorkingPath is 0X8121B8B8
ERROR/voOMXCfg(64): @@@VOLOG Error THD 0001FF38:   voCOMXBaseConfig.cpp  Open  366    The config file vomeOne.cfg could not be opened!
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 0 Component Name is OMX.VisualOn.FileSource
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 1 Component Name is OMX.VisualOn.Audio.Decoder.XXX
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 2 Component Name is OMX.VisualOn.Audio.Sink
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 3 Component Name is OMX.VisualOn.Video.Decoder.XXX
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 4 Component Name is OMX.VisualOn.Video.Sink
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 5 Component Name is OMX.VisualOn.Clock.Time
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 6 Component Name is OMX.VisualOn.G1Video.Capture
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 7 Component Name is OMX.VisualOn.G1Audio.Capture
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 8 Component Name is OMX.VisualOn.Video.Encoder.XXX
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 9 Component Name is OMX.VisualOn.Audio.Encoder.XXX
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 10 Component Name is OMX.VisualOn.FileSink
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 11 Component Name is OMX.VisualOn.DataSource
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 12 Component Name is OMX.VisualOn.Audio.Effect
ERROR/voCOMXCoreLoader(64): @@@VOLOG Info THD 0001FF38:    voCOMXCoreLoader.cpp  OMX_ComponentNameEnum  443    The 13 Component Name is OMX.VisualOn.Video.Effect
ERROR/(64): @@@VOLOG Error THD 0001FF38:   CBaseConfig.cpp  Open  373    The config file vommcodec.cfg could not be opened!
ERROR/voCOMXFileSource(64): @@@VOLOG Info THD 0001FF38:    voCOMXFileSource.cpp  voCOMXFileSource  86    Name OMX.VisualOn.FileSource.
ERROR/CDllLoad(64): @@@VOLOG Info THD 0001FF38:    CDllLoad.cpp  LoadLib  221    Load module libHTC_mm_property.so!
ERROR/MM_PROPERTY(64): can not match property 'rtspproxyip'
ERROR/CDllLoad(64): @@@VOLOG Info THD 0001FF38:    CDllLoad.cpp  FreeLib  270    Free module libHTC_mm_property.so!
ERROR/voStreaming(64): voStreaming Permission denied,[/data/local/visualonLog_rtsp/],create log directory fails
ERROR/CDllLoad(64): @@@VOLOG Info THD 0001FF38:    CDllLoad.cpp  LoadLib  221    Load module libvoSrcRTSP.so!
ERROR/CRTSPSource(64): @@@VOLOG Info THD 0001FF38:    CRTSPSource.cpp  HandleStreamEvent  554    Error Event 3002
ERROR/CRTSPSource(64): @@@VOLOG Error THD 0001FF38:   CRTSPSource.cpp  LoadSource  255    VOID_STREAMING_OPENURL failed. 0X83000007
ERROR/voCOMXFileSource(64): @@@VOLOG Error THD 0001FF38:   voCOMXFileSource.cpp  LoadFile  555    m_pSource->LoadSource was failed. 0X83000007
ERROR/voCOMXCompBaseChain(64): @@@VOLOG Error THD 0001FF38:   voCOMXCompBaseChain.cpp  AddSource  292    ##########    File Name is rtsp://..........(purposely hidden)
ERROR/voCOMXCompBaseChain(64): @@@VOLOG Error THD 0001FF38:   voCOMXCompBaseChain.cpp  AddSource  306    It could not load the source component.
ERROR/Util(64): @@@VOLOG Error THD 0001FF38:   voCOMXBaseGraph.cpp  Playback  782    m_pChain->AddSource!
ERROR/CVOMEPlayer(64): @@@VOLOG Error THD 0001FF38:   CVOMEPlayer.cpp  BuildGraph  421    m_fAPI.Playback error 
ERROR/CVOMEPlayer(64): @@@VOLOG Error THD 0001FF38:   CVOMEPlayer.cpp  NotifyOpenSource  342    BuildGraph failed!.
ERROR/MediaPlayer(4243): error (1, -1)
ERROR/MediaPlayer(4243): Error (1,-1)
4

1 回答 1

2

您可以MediaPlayer.OnErrorListener使用myVideoView.setOnErrorListener(...). 将不会显示带有“抱歉无法播放视频”的默认对话框,但侦听器实例将允许您创建自己的AlertDialog(或任何适合您需要的)并处理此对话框上的任何操作。

于 2011-04-15T00:29:24.530 回答