首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用exoplayer在android 9和10上播放流时出错

使用exoplayer在Android 9和10上播放流时出错可能是由于以下原因之一导致的:

  1. Android系统权限限制:Android 9和10版本引入了更严格的权限控制机制。如果您的应用程序没有获取适当的权限(例如网络访问权限、媒体访问权限等),可能会导致播放流时出错。您可以通过在AndroidManifest.xml文件中声明所需的权限来解决此问题。
  2. 媒体编解码支持问题:exoplayer使用Android系统的媒体编解码器来处理不同格式的媒体文件。在某些情况下,您的设备上可能缺少特定格式的编解码器,从而导致播放流时出错。您可以尝试使用不同的媒体源或编解码参数来解决此问题。另外,确保您的设备上的系统媒体库和相关服务是最新版本。
  3. 网络连接问题:如果您的网络连接不稳定或延迟较高,可能会导致exoplayer无法顺利缓冲和播放流。您可以尝试在更稳定的网络环境中测试,或者根据您的实际需求选择适当的流传输协议(如HLS、DASH等)来优化网络传输。
  4. 流媒体服务器配置问题:如果您使用的流媒体服务器配置不正确或不兼容exoplayer的要求,也可能导致播放流时出错。确保您的流媒体服务器支持exoplayer所需的协议和格式,并根据exoplayer的文档和示例进行正确配置。

针对这个问题,腾讯云推荐使用其云原生产品系列来构建和部署移动应用程序,并提供全方位的云计算解决方案。具体推荐的产品和介绍链接如下:

  1. 移动直播(移动开发、音视频、云原生):腾讯云移动直播可以帮助您构建具备实时直播功能的移动应用程序,支持Android 9和10等版本。了解更多:https://cloud.tencent.com/product/mlvb
  2. 媒体处理(音视频、云原生):腾讯云媒体处理可以帮助您处理和转码各种格式的媒体文件,使其适用于不同的设备和平台。了解更多:https://cloud.tencent.com/product/mps

请注意,以上仅为腾讯云提供的部分产品,并非排除其他品牌商的产品,具体选择应根据您的实际需求和预算来决定。同时,建议参考腾讯云文档和官方网站获取更详细和最新的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

追根溯源解杂音之谜,臻于至善得完美音质

一、问题背景与分析 不久前,团队发现其Android平台App播放MV视频《凤凰花开的路口》,会带有如电流声一般的杂音,这影响了用户体验。...三、问题分解与切入 梳理出播放流程后,标记出找到有可能出错的环节,方便进行“分层定位”(图中黄色标记) 播放下载文件是否有问题; 数据读取是否有问题; 音频解码逻辑是否有问题; AudioTrack的设置是否有问题...由分析,可以得出结论:Android平台选择了第二条数据有问题的流进行播放。...但选择规则依然以上述所示(DefaultTrackSelector) iOSPC平台采用闭源组件,因此测试使用了“互换两条音频流顺序”的方法进行测试。...平台会默认选择第一条流,而在Android平台的FFmpegExoPlayer会根据音频流属性来选择数值更好的一条。

3.1K81

如何让短视频做到”秒“?(下)

timg.jpg 二、Player buffer 耗时原因: 对于非直播类的播放器,一般都会在player内设计一个缓冲buffer,这是为了播放流畅性音视频同步的需要,尤其是在网络不稳定或较差的情况下...若整个播放过程是几十分钟,甚至是几个小时的体验,开始播放缓冲个几秒是可以接受的,但是对于短视频来说,这样的体验并不好。...例如Android的nuplayer框架设计受限于这些因素,起速度远远达不到这些,后来nuplayer升级为exoplayer之后,效果依然不行,需要找厂家做二次开发才可以。...图像质量并非越高越好,对于不是不同场景快速切换的720视频,3M5M码率的区别不大。对于短视频来说,要在画面质量传输找到一个平衡。...I帧位置,指的是视频I帧文件开头的位置,播放器为了防止花屏之类的问题出现,一般开始播放或seek都会找到第一个I帧进行解码,一般视频文件一秒有25-30帧,很明显I帧放在第一帧放在最后一帧对秒是有影响的

1.9K20
  • 追根溯源解杂音之谜,臻于至善得完美音质

    一、问题背景与分析 不久前,团队发现其Android平台App播放MV视频《凤凰花开的路口》,会带有如电流声一般的杂音,这影响了用户体验。...三、问题分解与切入 梳理出播放流程后,标记出找到有可能出错的环节,方便进行“分层定位”(图中黄色标记) 播放下载文件是否有问题; 数据读取是否有问题; 音频解码逻辑是否有问题; AudioTrack的设置是否有问题...由分析,可以得出结论:Android平台选择了第二条数据有问题的流进行播放。...但选择规则依然以上述所示(DefaultTrackSelector) iOSPC平台采用闭源组件,因此测试使用了“互换两条音频流顺序”的方法进行测试。...平台会默认选择第一条流,而在Android平台的FFmpegExoPlayer会根据音频流属性来选择数值更好的一条。

    84000

    音视频领域火爆的开源项目

    是两种演进思路; vlc 整体效率感觉更好一些; vlc-android编译出来的包过大,约20M,这是工程开发无法忍受的; vlc的更新节奏非常快,不像ijkplayer,目前基本没有太多bilibili...https://github.com/google/ExoPlayer ExoPlayer是google开源的一个播放器库,是基于MediaPlayer的一个扩展,核心原理是分离音频视频流,然后基于...MediaCodec硬解码解析数据,目前的稳定性比较好,而且效率较高;如果你的视频源本身比较简单或者播放过程中不涉及码流的切换等等,建议还是选择ExoPlayer,播放效果更佳; 9.MediaSDK...,m3u8非m3u8视频下载; 实现m3u8、非m3u8视频边下边功能; 本地代理实现边下边功能; 10.AndroidVideoCache https://github.com/danikula.../AndroidVideoCache 这是github非常火的一个mp4边下边的库,也是基于本地代理的,可以参考起来使用; 11.LiTr https://github.com/linkedin/

    2.1K10

    ExoPlayer 漫谈之解码器复用

    播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块...基于我们对MediaCodec使用方式原理的熟悉,我们使用MediaCodec的时候,首先要初始化,codec configure, codec start等流程,经过这些流程,codec分配内存来存储...针对codec 复用, 2.10版本之前2.10之后的版本, 使用方式原理还是有所不同的....] 2.10之前的版本中,只要视频渲染器保持启用启动状态,ExoPlayer就会尽可能重复使用视频解码器。...ExoPlayer播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例中的 当重新prepare新的视频,调用prepare之前不能调用stop函数,因为stop

    2.6K60

    ExoPlayer漫谈之解码器复用

    播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块...基于我们对MediaCodec使用方式原理的熟悉,我们使用MediaCodec的时候,首先要初始化,codec configure, codec start等流程,经过这些流程,codec分配内存来存储...针对codec 复用, 2.10版本之前2.10之后的版本, 使用方式原理还是有所不同的....started状态, 在此状态下,渲染器使用持有的解码器实例来播放视频 ? 2.10之前的版本中,只要视频渲染器保持启用启动状态,ExoPlayer就会尽可能重复使用视频解码器。...ExoPlayer播放器,最好使用同一个ExoPlayer实例,因为codec实例是封装在ExoPlayer实例中的 当重新prepare新的视频,调用prepare之前不能调用stop函数,因为stop

    2.2K31

    ExoPlayer 多路流切换

    理论上说是可以的,但是却很少有人这样做,第一个原因是,如果要使用2种硬解码器,必然受到硬件制约,因为硬解码器很多设备作为DSP芯片的一部分,设备厂商不可能配置2个以上DSP芯片,特别对于IOT设备,...尤其是TV,绝大部分成本屏幕,上个好点的CPU都很难;第二个原因如果使用软解码器+硬解码器,软解码器性能好的时候没有问题,但是性能差可能卡顿问题会相当多。...而ExoPlayer本质是支持多路流的,可以同时支持多个Mp4、多个音频文件、多种语言版本的歌词。...SampleStream,判断当前正在使用的渲染器Track流是否匹配 //注意:这里是循环,说明我们切换多路流可以同时切换音频视频等轨道 boolean[] rendererWasEnabledFlags...4.2.2 音频视频对齐不同点: 相对来说,音频对齐要简单的多,音频解码后的数据是有规律地线性排列,保证播放时间的准确的基础,保证声音通道数、位深排列顺序正常就行(比如对齐之后,不能将左声道变为右声道

    1.1K31

    QQ音乐MV播放杂音问题解析

    ijkplayer播放流程后,标记出找到有可能出错的环节,方便进行“分层定位”(图中黄色标记) 播放下载文件是否有问题 数据读取是否有问题 音频解码逻辑是否有问题 AudioTrack的设置是否有问题...(三)问题定位结论 由上得出结论:Android端选择了第二条数据有问题的流进行播放。 音频流选择 选择方式 Android使用FFmpeg中的av_find_best_stream来选择音频流。...但选择规则依然以上述所示(DefaultTrackSelector) iOSPC端采用闭源组件,因此测试使用了“互换两条音频流顺序”的方法进行测试。...端会默认选择第一条流,而在Android端的FFmpegExoPlayer会根据音频流属性来选择数值更好的一条。...以下是解决方案: 编辑重新架正常音源 前期Android端增加双音频流的检测上报,帮助后台、编辑进行复查 后续由后台开发工具,分别对存量视频进行双音频流检测对增量视频保证只转码单音频流 参考资料 https

    5.4K10

    4款知名播放器比较:ijkPlayer、VLC、SmartPlayer、ExoPlayer

    ijkPlayer ijkPlayer是BiliBili公司维护的一个开源工程,基于ffmpeg开发的一个播放器软件,支持AndroidiOS平台,整个ijkplayer就是以ffplay为基础,如果只是使用它进行播放...,集成也较为简单,使用MediaPlayer差不多,但是要定制化需求,就有一定的门槛高度。...Android platform: API 9~23 cpu: ARMv7a, ARM64v8a, x86 (ARMv5 is not tested on real devices) api: MediaPlayer-like...]支持解码后YUV/RGB数据回调; [解码前音频数据回调]支持AAC/PCMA/PCMU数据回调; [音视频自适应]支持播放过程中,音视频信息改变后自适应; [扩展录像功能]支持录像SDK组合使用...ExoPlayer ExoPlayer 是google推出的开源播放器,主要是集成了Android 提供的一套解码系统来解析视频音频,将MediaCodec封装地非常完善,形成了一个性能优越,播放稳定性较好的一个开发播放器

    7.9K70

    音视频开发之旅(44)-ExoPlayer介绍及简单使用

    ExoPlayer没有设定可以播放的媒体类型、存储方式以及渲染方式,也没有直接实现加载播放。而是播放器被创建或者准备播放将这些工作代理给注册的组件来实现。...我们的日常项目开发中,开发一个组件 从易用性以扩展性方面考虑,既要保证使用者很容易上手使用(提供一套默认实现),又要有方便使用者根据自己的场景进行方便的扩展的能力。...相比MediaPlayer,ExoPlayer的状态少了些,也更容易使用区分,不像MediaPlayer没有prepared之前都不可以进行播放相关操作,ExoPlayer很多listener以及isplaying...,为true,将会开始播放,否则不。...STATE_ENDED: 播放完了所有的资源后处于改状态 二、ExoPlayer的简单使用 这一小节我们学习实践ExoPlayer使用 2.1 AS中引入library ExoPlayer有很好的扩展性可定制性

    7.6K00

    音视频开发之旅(45)-ExoPlayer 音频播放器实践(一)

    要在Android中实现这一设计,您可以使用两个组件构建一个音频应用程序: activity(展示所用) 播放器service。如果用户切换到另一个应用程序,则该service可以在后台运行。...设计音乐播放器APP架构,有几种常用的做法 方案一 注册Service,用于数据设置、音乐控制,Service中自定义播放器的一些状态值回调接口用于流程控制 通过广播、aidl等实现页面层逻辑的通信...APP媒体会话 方案二 Android5.0推出的MediaSession框架(Supprot包中MediaSessionCompat也对低版本做了支持),专门用来解决媒体播放界面Service通信的问题...playpause.png 一首下一首切换 歌曲切换流程个上面的播放流程基本一致, //com.example.myplayer.audio.ExoSimpleAudioPlayerActivity...完整代码已上传至 github https://github.com/ayyb1988/mediajourney 三、资料 ExoPlayer Android开发之ExoPlayer的学习使用(音频)

    5.2K00

    Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

    可以通过Git命令克隆VLC的Android分支到本地机器,例如使用命令git clone https://code.videolan.org/videolan/vlc-android.git。...Android Studio的工具栏,点击“Run”按钮,并选择你的Android设备作为目标。等待应用在设备安装启动。如果一切正常,VLC应用应该能够在你的Android设备运行。5....VLC的Android版本可能不包含桌面版本的所有功能,因此集成需要仔细评估所需功能是否可用。2....使用ExoPlayerGoogle的ExoPlayer是一个开源的媒体播放库,旨在替代Android的MediaPlayer API,并提供了更广泛的格式支持更好的性能。...这个MediaSource将负责使用FFmpeg来拉取和解码RTSP流,并将解码后的数据(通常是PCM音频YUV或RGB视频帧)传递给ExoPlayer的渲染器。

    26410

    ExoPlayer 自适应流切换分析

    ExoPlayer中,MergingMediaSource 中的同一类型(视频类型、音频类型、字幕类型等)的数据,由于缺乏必要的码率参数, 无法将相似Format的Track数据合并为一组,因此使用的...MapTrackInfo : 这个类实际是一个RendererTrackGroup相关信息的集合类,主要保存Renderer能力信息TrackGroup信息,某种程度上可以看到数据格式Renderer...解析清单文件,如果使用的是HLS协议,ExoPlayer内部利用HlsPlaylistParser类作为清单文件解析工具,如果是DASH则使用DashManifestParser解析清单,依次类推,...答案是否定的,因为MergingMediaSource合并的是完整的资源,使用过程中并不会调用TrackSelection相关方法,当然ExoPlayer也没有实现资源的动态分片。...5s后设置带宽 【1】起设置带宽1924009/0.7f 【2】起10s后设置带宽577610/0.7f //起 bandwidthMeter.setSpecificBitrate((long

    1.4K30

    看点视频秒开优化:解码器复用优化方案篇

    而Google为了优化清晰度无缝切换的耗时,ExoPlayer实现了播放器内的解码器复用。...目标如下: 跨播放器复用:解码器能够多个播放器之间共享,适应多player场景。 高复用率:闲置的解码器能够被选择,需要保证播放器尽可能的复用解码器。...当新播放器起,可以根据视频特征选择合适的解码器。 ?...2.3.3 代理方式实现低入侵方案 以上方案都被否定,我们这里考虑使用代理方案,让代理类TMediaCodecMediaCodec使用完全一致的接口,这样接入TMediaCodec只需要代理内部实现逻辑即可...这里的错误是指MediaCodec硬解错误,就算出错,播放器也有切换软解策略。 目前在手Q已有TOP500机型落地,覆盖用户达到的96.14%。

    5.8K126

    音视频技术开发周刊 | 179

    WebRTC的现状未来:专访W3C WebRTC Chair Bernard Aboba() 每年,我都会在IIT-RTC会议与许多WebRTC标准人员进行交流,这场疫情显然让今年有所不同。...虽然我们今年的Kranky Geek会议确实谈到了标准化“WebRTC的未来”,但我们没有时间深入研究更多细节,所以我们将在这里讨论。...,最终可能会使用 WebRTC 作为首选。...https://mp.weixin.qq.com/s/wZa4uvJ8r4a85KUiX_OtlQ ExoPlayer漫谈之解码器复用 播放器性能的极致优化,就是要发现播放流程中一点一滴的耗时,然后分析这些耗时...,并提出有效的方式解决这些耗时.了解过ExoPlayer播放器的同学们都知道ExoPlayer的解码是依赖Android系统提供的原生的解码模块,即MediaCodec来实行视频音频解码的。

    88200

    Android FFmpeg系列07--音画同步

    引言 在前面的Demo中,我们已经分别在独立的线程中实现了对视频的解码渲染音频的解码播放功能 Android FFmpeg系列03--视频解码与渲染 Android FFmpeg系列05--音频解码与播放...Demo中一直使用的oceans.mp4可能不是很容易区分音画不同步问题,除非是真的特别严重的时候,在网上找了一个可以用来测试音画是否同步的视频,也上传到工程中的assets目录中了,感兴趣的小伙伴可以自己...、视频数据帧打上显示时间戳pts; 解码播放,根据音频、视频时间戳及参考时钟来调整播放(如果数据帧的pts大于当前参考时钟的时间,则sleep直到参考时钟到达数据帧的时间;如果数据帧的pts小于当前参考时钟的时间...,极有可能引发音频视频都跳帧的情况 这三种是最基本的同步策略,考虑到人对声音的敏感度要强于画面,频繁调节音频会带来较差的感官体验,另一方面是音频数据确定采样率、采样位数、声道数等参数播放时间就很容易计算且能准确计算...ffplay,exoplayer都是如此 音画同步的关键在于计算视频音频时间的diff计算最终的delay,ffplay.c源码中通过如下函数计算 static double compute_target_delay

    1.5K40

    一个ExoPlayer原生播放问题引起的思考

    问题背景 我们使用ExoPlayer播放视频的视频发现一种特殊的M3U8视频,播放总是失败。 而且报如下的错误: ExoPlayerImplInternal: Source error....at com.google.android.exoplayer2.extractor.ts.TsExtractor.read(TsExtractor.java:260) at com.google.android.exoplayer2...’仅含自适应域,无有效负载;‘11’为同时带有自适应域有效负载。...ExoPlayer这样修改的原因 ---- 先放上两个源码修改链接: https://github.com/google/ExoPlayer/commit/0697fb3955d8a30edb935cc428d515e2fd9d48cb...这样的判断标准而言是没有什么问题的。 我们应该怎么改 我们遇到这样的播放失败,只能采用两种办法了? 向M3U8的提供方提意见,最好修改一下TS内部格式,让其符合标准。

    3.4K20

    企鹅FM(Android) 播放成功率从 2 个 9 到 3 个 9 的蜕变

    作者:张陈博男 业务层播放器架构演变 企鹅FM android端的播放器架构经历过两次较大的调整 第一次是2.1版本,首次引入了以FFmpeg为基础的腾讯视频SDK,替换了之前一直使用的系统播放器,结束了不同机型上表现不一调用其...那么是什么东西去鼓动我们换掉已经维护的很成熟的腾讯视频SDK而换用谷歌的ExoPlayer呢,动力来自于寻求到3个9的突破,而思想来自于奥卡姆剃刀原则——如无必要,勿增实体。...但是本地代理本身把一个请求的链路拖长了,而且本地tcp socket同样有这各种各样的断开问题连接超时问题,实质增加了整个系统出错的概率。...,MediaCodec各个机型兼容性较好,投诉较少(目前仅收到两例初始化MediaCodec失败的投诉) ExoPlayer纯Java的实现,也帮助了我们尽可能收归各种错误信息,转换成业务错误码 总体来讲...,剔除掉了不必要的逻辑后,代码更加的简洁,而且数据的路径也更加简短,这提升了可维护度降低了出错概率。

    3.8K00

    直播间源码android音视频开发

    ,表示成水平点数垂直点数的形式, 计算机显示领域我们也表示成“每英寸像素”(ppi).一个固定的平面内,分辨率越高,意味着可使用的点数越多,图像越细致 码流 数据传输单位时间传送的数据位数,可以理解其为取样率....RTP协议和RTP控制协议RTCP一起使用,而且它是建立UDP协议的 RTCP:Real-time Transport Control Protocol或RTP Control Protocol或简写...该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、多UDP与TCP提供途径,并为选择基于RTP发送机制提供方法 传输所用的网络通讯协定并不在其定义的范围内,服务器端可以自行选择使用TCP...MPEG-4:制定于1998年,MPEG-4是为了播放流式媒体的高质量视频而专门设计的,它可利用很窄的带宽,通过帧重建技术, 压缩传输数据,以求使用最少的数据获得最佳的图像质量。...[待深入使用,或者用过的可以交流下] 其实这个没有深入分析,ijkplayer是bilibili开源的音视频编解码库,对android,ios进行很好的抽取封装,易于编译使用.vlc尝试过,稍微复杂些

    3.3K21

    ExoPlayer播放音视频的使用介绍

    本文翻译自:https://google.github.io/ExoPlayer/guide.html#mediasource 一、简介 安卓设备播放视频音乐是很受欢迎的活动。...更少的设备特定问题以及不同设备Android版本的行为差异更小。 Android 4.4(API级别19)及更高版本支持Widevine通用加密。 您可以根据使用情况来自定义扩展播放器。...因此,他们不支持早期版本的Android。Widevine通用加密可以Android 4.4 (API级别19)更高版本使用。...使用SimpleExoPlayer,可以播放器设置其他监听器。...会话管理器支持设备存在模块DRM组件的任何DRM方案。所有的Android设备都需要支持Widevine模块DRM(使用L3安全性,尽管许多设备也支持L1)。

    6.3K20
    领券