exoplayer专题

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

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

ExoPlayer 漫谈之Sonic调整音量

提一个问题:如何在播放视频的时候调整声音的大小? 我们使用Android手机播放视频的时候,发现声音大了,我们手动调低音量;发现声音小了,我们手动调高音量。 这个过程中,都要依赖手动,如果你在不断地刷短视频的时候,如果需要用户不断地手动调整音量键,那这个体验是不能忍受的。 这对我们提了一个要求:我们能在解码音频流的时候通过矩阵运算调整音频原始数据的大小,达到调整音量的目的? 这个思路是可行

Exoplayer多视频切换和HLS多码率手动切换

多视频切换说白点就是上一集下一集功能,在网上找了一下发现几篇都是要改源代码的,这么强大的播放器怎么会没有这个功能呢,就换了关键字找,最后找到别人说可以用ConcatenatingMediaSource实现,然后又找具体代码,最后在GitHub里找到例子AesExoPlayer,后来翻了下Exoplayer的demo代码发现也有怎么用ConcatenatingMediaSource的,就是不太明显c

ExoPlayer的详细使用事件篇

ExoPlayer提供的主要事件我们可以查看源码中的PlayerControlView.ComponentListener,它对事件的处理比较多,也比较符合我们使用所要了解的监听。 1. Player.EventListener EventListener提供了两种方式来监听播放器的视频回调 1.1 总的回调函数EventListener.onEvent(Player player, Eve

Exoplayer的详细使用UI篇

1. ExoPlayer中的UI主要分 主视频播放控件PlayerView 、StyledPlayerView控制控件PlayerControlView主视频覆盖view,exo_overlay 其他还有包括字幕,插图等控件 2. 使用方式 控件PlayerView与PlayerControlView都提供的是布局layout id设置方式来让用户自定义界面。 在控件中解析layout

ExoPlayer简单介绍与使用

简单介绍 ExoPlayer是运行在YouTobe app上的视频播放器。它功能强大的同时又兼容低版本Android设备,在ExoPlayer V2版本上最低支持 android 16 也就是android 4.1版本。 功能强大在支持除Android内置媒体播放器支持的格式外增加自适应格式DASH 和SmoothStreaming, 同时ExoPlayer在代码结构设计上又支持高度定制和扩展

安卓手机APP开发使用Media3 ExoPlayer创建一个基本的播放app

安卓手机APP开发使用Media3 ExoPlayer创建一个基本的播放app 目录 概述  现在开始 创建一个媒体播放器 创建一个ExoPlayer 准备播放器 控制播放器 释放播放器 管理回放使用一个媒体会话 创建一个媒体会话 给其它的客户端的授权 在后台上播放媒体

使用改头换面之后的ExoPlayer实现Android视频播放

使用 ExoPlayer 实现 Android 视频播放 概览 在 Android 应用开发中实现视频播放是一个常见需求,尤其在视频流和 IPTV 应用中更为突出。本文将介绍如何在 Android 应用中使用 ExoPlayer 实现高效、流畅的视频播放,内容将包括 Java 和 Kotlin 两种语言的实现。 添加依赖 在项目的 build.gradle 文件中添加 ExoPlayer

ExoPlayer架构详解与源码分析(12)——Cache

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)——整体架构 ExoPlayer架构详解与源码分析(5)——MediaSource ExoPlayer架构详解与源码分析(6)——MediaPeriod ExoPla

ExoPlayer里里外外之:流媒体播放与数据结构

播放器中的Buffer(从source读到视频数据经过处理送给Decoder解码之前存放视频数据的缓冲,“source->Buffer->decoder”)设计往往很重要,涉及读、写、跳转等操作的效率,流媒体播放器更是如此,经典的设计比如rolling buffer,还有叫ring-buffer的,简单理解就是一个数组然后让首、尾连起来,通过读指针和写指针的移动来控制读写的位置更新。

ExoPlayer 播放视频黑屏的解决方法

最近项目中在使用 ExoPlayer 来进行视频的播放,开发过程中遇到了部分视频打开后黑屏的问题,报错日志如下。 E Audio codec error android.media.MediaCodec$CodecException: Error 0xeE Playback error androidx.media3.exoplayer.ExoPlaybackException: Medi

【Android 性能优化:内存篇】——ExoPlayer 释放后内存没有恢复问题探索

背景 最近笔者承接项目的内存优化指标,在内存调研的过程中发现项目中视频播放结束后,内存没有恢复到播放前到水平。项目中用的 EXO 版本为2.19.1,并且笔者自己也写了个简单的 Demo,发现也是如此。虽然有一些偏门方法可以优化,但是暂时还是未能正面突破,各位看官,如果有什么idea,欢迎留言多多指教~ 分析 笔者的 Demo 如下 api 'com.google.android.e

基于ExoPlayer的缓存方案实现

音视频APP 的一个必备功能就是在播放的时候会持续缓存完整个音频,同时进度条会更新缓存进度。但是目前Google推出的播放器ExoPlayer本身并没有提供什么方便的接口去实现这个功能,因此大多数的开发者可能会使用AndroidVideoCache 开源库来实现缓存。 AndroidVideoCache 的原理是通过代理的策略实现一个中间层,将网络视频请求转移到本地实现的代理服务器上,这样真

ExoPlayer包体积优化

减小 APK 大小是开发良好的 Android 应用程序的一个重要方面,特别是在面向发展中市场或开发 Android Instant App 时。对于这些情况,希望尽量减小包含在 APK 中的 ExoPlayer 库的大小。以下是一些简单的步骤,可以帮助实现这一目标。 使用模块依赖关系 使用 ExoPlayer 最方便的方式是添加对完整库的依赖: implementation 'com.go

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外,我们还将探讨如何集成音频均衡器,为用户提供个性化的音频体验。 使用ExoPlayer进行直

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外,我们还将探讨如何集成音频均衡器,为用户提供个性化的音频体验。 使用ExoPlayer进行直

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器

在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器 背景 ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外,我们还将探讨如何集成音频均衡器,为用户提供个性化的音频体验。 使用ExoPlayer进行直

ExoPlayer架构详解与源码分析(10)——H264Reader

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)——整体架构 ExoPlayer架构详解与源码分析(5)——MediaSource ExoPlayer架构详解与源码分析(6)——MediaPeriod ExoPla

ExoPlayer架构详解与源码分析(6)——MediaPeriod

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)——整体架构 ExoPlayer架构详解与源码分析(5)——MediaSource ExoPlayer架构详解与源码分析(6)——MediaPeriod

基于ExoPlayer的自定义通知栏的音频播放服务

前言:在接手的项目中,有用到音频播放功能,而用到的库基本以及停止维护了(虽然也是基于exoplayer的库),但通知栏样式只有一种就是默认的,若遇到设计需要改,比较难,还需要拷贝库源代码进行修改,针对这一点,同时也为了更好的学习,于是就写了一个通用的带有自定义通知栏的音频服务,当然这也是基于exoplayer最新版本 1.仓库引入 //root/buildallprojects {repo

ExoPlayer播放器剖析(四)从renderer.render函数分析至MediaCodec

关联博客 ExoPlayer播放器剖析(一)进入ExoPlayer的世界 ExoPlayer播放器剖析(二)编写exoplayer的demo ExoPlayer播放器剖析(三)流程分析—从build到prepare看ExoPlayer的创建流程 ExoPlayer播放器剖析(四)从renderer.render函数分析至MediaCodec ExoPlayer播放器剖析(五)ExoPlayer

exoplayer与ffmpeg_在MacOS上编译ExoPlayer的FFmpeg扩展

没有前言 就是视频没声音 然后ExoPlayer音频可以FFmpeg扩展 1.git源码 git clone https://github.com/google/ExoPlayer.git EXOPLAYER_ROOT="$(pwd)" FFMPEG_EXT_PATH="${EXOPLAYER_ROOT}/extensions/ffmpeg/src/main" HOST_PLATFORM="da

ExoPlayer架构详解与源码分析(3)——Timeline

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)——整体架构 ExoPlayer架构详解与源码分析(5)——MediaSource 文章目录 系列文章目录前言Timeline单文件或者点播流媒体文件播放

ExoPlayer架构详解与源码分析(4)——整体架构

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)——整体架构 ExoPlayer架构详解与源码分析(5)——MediaSource 文章目录 系列文章目录前言Player的实现BasePlayerExo

ExoPlayer架构详解与源码分析(5)——MediaSource

系列文章目录 ExoPlayer架构详解与源码分析(1)——前言 ExoPlayer架构详解与源码分析(2)——Player ExoPlayer架构详解与源码分析(3)——Timeline ExoPlayer架构详解与源码分析(4)——整体架构 ExoPlayer架构详解与源码分析(5)——MediaSource 文章目录 系列文章目录前言MediaSourceMediaSource

Google官方ExoPlayer视频播放框架学习(一)

一、简介 ​ ExoPlayer是一款基于Android底层媒体api的应用级媒体播放器 ,现在主流的视频播放器使用的第三方视频框架有Vitamio、B站开源的ijkPlayer、再就是ExoPlayer等,以前用过Vitamio视频框架,网上资料很多,这里就不过多介绍了,主要介绍ExoPlayer。 ​ ExoPlayer是否需要学习,这是个问题,因为我们已经有Vitamio用了呀,我到Gi