`
runfeel
  • 浏览: 936238 次
文章分类
社区版块
存档分类
最新评论

Android的BUG(一) - HTML 5 播放streaming video造成卡住的问题

 
阅读更多

这个bug,是google自带的问题。 和见到的诸多android的疑难问题一样,这又是一个可以归类为 多线程同步/状态机 问题。


问题处在NuPlayer的异步消息的handle中,现象和原因不细说了,被此BUG纠结的头大的,应该一看就明白。

重现步骤:反复进入、退出html5的流媒体播放 (浏览器的UA设成Ipad模式,去如youku网、百度视频中去播视频),会出现卡死情况

卡住的原因,就是刚播放开始的初始化过程中,按了返回键,要返回,NUPlayerDriver 会执行reset操作,并且向NUPlayer 发送reset 消息,收到此消息NUPlayer就向Acodec 发送kwhatflush 消息。由于component当时处于LoadedToIdleState状态, 还没有运行起来,实质上不需要flush decoder,但是ACodec 必须要向NUPlayer回馈kwhatflushcomplete消息,以上整个流程能够顺利走完,否则上层模块在等待flush的回应,会一直等待下去。

解决方法:在ACodec中的baseState中,也加入一个case,向上回个消息就好了(问题很严重,但知道原因后,解决方法都很简单,呵呵,想起那德国工程师划线的故事了没?)

		case kWhatFlush:
		{
			sp<AMessage> notify = mCodec->mNotify->dup();
            		notify->setInt32("what", ACodec::kWhatFlushCompleted);
            		notify->post();
            		break;
		}

这个BUG,那天某知名公司的展台上,也看到了,不过他们给的回复是因为我把UA设成IPAD模式造成的,改成android后,会走flash的解码过程,就不会有问题了。呵呵,这是在捣浆糊啊,做产品不能这样唉~


分享到:
评论

相关推荐

    android-video-streaming

    在Android平台上,开发一款能够播放在线视频的应用是一项常见的任务,这通常涉及到`VideoView`组件的使用。`VideoView`是Android SDK提供的一种方便的视图类,它允许开发者嵌入视频内容到应用中,支持播放本地视频和...

    Android代码-cordova-plugin-streaming-media

    This plugin allows you to stream audio and video in a fullscreen, native player on iOS and Android. 1.0.0 Works with Cordova 3.x 1.0.1 Works with Cordova &gt;= 4.0 Installation cordova plugin add ...

    flask-video-streaming-master.zip

    标题中的"flask-video-streaming-master.zip"表明这是一个与使用Flask框架进行视频流传输相关的项目。Flask是一个轻量级的Python Web服务器网关接口(WSGI)Web应用框架,它提供了构建Web服务的基本工具。这个项目...

    react-native-android-audio-streaming-aac:React Native Android模块音频流AAC

    project( ' :react-native-android-audio-streaming-aac ' ) . projectDir = new File &#40;settingsDir, ' ../node_modules/react-native-android-audio-streaming-aac ' &#41; android/app/build.gradle .. . ...

    Peer-to-Peer Video Streaming

    "Peer-to-Peer Video Streaming"是一种创新的技术,它改变了传统的中心化视频流传输方式,极大地提高了网络效率和用户体验。这个主题由Eric Setton在2007年撰写的书籍中进行了深入探讨。 【描述】:Eric Setton的...

    android_html5_video

    这个"android_html5_video"项目显然是一个示例,演示了如何在Android应用中利用HTML5的`&lt;video&gt;`标签来实现视频播放,并且具备全屏播放的能力。让我们深入探讨一下这个知识点。 1. **HTML5 `&lt;video&gt;` 标签** HTML5...

    MS-WMSP---MS Http Streaming Protocol

    MS-WMSP---MS Http Streaming Protocol

    videojs-contrib-quality-levels-2.0.5_VideoJS_

    videojs-contrib-quality-levels是VideoJS的一个贡献组件,它的主要功能是为VideoJS添加了多质量级别(Adaptive Streaming)的支持。这个组件尤其对于流媒体服务至关重要,因为它允许用户根据网络状况选择不同质量的...

    Android-App-for-video-streaming:从使用 Xampp 或任何类型服务器存储的网络摄像头流式传输录制视频的 Android 应用程序

    Android-App-for-video-streaming 从使用 Xampp 服务器或任何其他类型服务器存储的网络摄像头流式传输录制视频的 Android 应用程序它由用于后端的登录/注册页面 SQLite 组成。 4 个意图用于流式传输 4 个不同的视频...

    Python库 | python-ffmpeg-video-streaming-0.0.11.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:python-ffmpeg-video-streaming-0.0.11.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    PyPI 官网下载 | python-ffmpeg-video-streaming-0.1.8.tar.gz

    "python-ffmpeg-video-streaming-0.1.8.tar.gz"这个压缩包包含了该库的源代码和相关文件。通过解压并安装,开发者可以在自己的Python项目中利用这个库来实现视频流的处理。在PyPI(Python Package Index)官网上,...

    Peer-to-Peer Video Streaming --Eric Setton, Bernd Girod

    《Peer-to-Peer Video Streaming》一书不仅深入解析了P2P视频流传输的技术细节,还可能提供了实现这一技术的实用指导和案例分析,对于研究者、开发者以及对网络流媒体技术感兴趣的读者来说,是一份宝贵的参考资料。...

    flink-streaming-java_2.11-1.13.2-API文档-中文版.zip

    赠送jar包:flink-streaming-java_2.11-1.13.2.jar; 赠送原API文档:flink-streaming-java_2.11-1.13.2-javadoc.jar; 赠送源代码:flink-streaming-java_2.11-1.13.2-sources.jar; 赠送Maven依赖信息文件:flink-...

    vue+video.js-contrib-hls.js+Video.js+m3u8&flash;播放demo

    2. **video.js**:Video.js是一个开源的HTML5和Flash视频播放器,它提供了一套丰富的API和自定义主题,可以轻松地集成到任何网页或应用中。在这个示例中,Video.js作为基础的视频播放器,处理视频的加载、播放、暂停...

    Next-Generation Video Coding and Streaming 无水印pdf

    Next-Generation Video Coding and Streaming 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权...

    Android-RTSP-master播放rtsp源码

    在Android平台上实现RTSP(Real Time Streaming Protocol)播放是一个复杂的过程,涉及到多媒体处理、网络通信以及设备硬件交互等多个环节。`Android-RTSP-master`是一个开源项目,它提供了在Android设备上播放RTSP...

    android-camera-streaming,摄像机流(http-mjpeg),dsp处理,viola-jones人脸检测。.zip

    这个开源项目"android-camera-streaming,摄像机流(http-mjpeg),dsp处理,viola-jones人脸检测"提供了一个很好的起点,让我们深入探讨其中涉及的关键技术。 首先,HTTP-MJPEG是通过HTTP协议传输MJPEG(Motion ...

    Real-time-Video-Streaming.zip_java 实时视频_video stream_视频实时传输_视频流传

    在这个"Real-time-Video-Streaming.zip"压缩包中,包含了一个使用Java语言实现的实时视频流项目,名为"Real-time-Video-Streaming-master"。下面我们将深入探讨相关的知识点。 首先,我们要了解Java在实时视频流中...

    videojs-contrib-hls.js资源

    在现代网络视频播放领域,HTML5的Video元素已经成为了主流,然而对于HTTP Live Streaming(HLS)这种流媒体协议的支持,浏览器原生并不完全兼容。为了解决这个问题,社区开发了一系列的插件,其中videojs-contrib-...

    Android-基于googleExoPlayer播放hls的m3u8rtmpmp4文件;

    ExoPlayer是Google推出的一款强大的开源媒体播放器,专为Android平台设计,旨在提供灵活、高性能的媒体播放体验。在Android应用中,如果需要播放包括HLS(HTTP Live Streaming)、RTMP(Real-Time Messaging ...

Global site tag (gtag.js) - Google Analytics