MediaSource(媒体源):描述了要播放的媒体内容,它通常包含一个或多个媒体轨道,如视频轨道、音频轨道等。MediaSource将Extractor和DataSource结合起来,通过向ExoPlayer提供数据来实现播放。 MediaPeriod(媒体周期):表示媒体源中的一个连续时间段。每个MediaPeriod包含一个或多个SampleQueue,它们分别用于存储不同类型的样本数据。
创建ExoPlayer实例,并配置所需的Renderers。 设置MediaSource以指定要播放的媒体资源,并通过DataSource获取原始数据。 MediaSource使用Extractor来解析容器格式并提取媒体流数据。 解析后的媒体流数据会被传递给对应的Track对应的Decoder进行解码。 解码后的媒体样本会被存储在SampleQueue中进行缓存和管理。 根据Timeline和Windo...
ExoPlayer通过MediaSource获取要播放的媒体内容,并根据Timeline切换不同的MediaPeriods。 MediaPeriod负责与DataSource交互,读取媒体文件并传递给对应类型的Extractor进行处理。 Extractor从DataSource获取到媒体数据后进行解析,提取音视频数据。 解析后的音视频数据通过SampleQueue存储,并传递给相应的解码器进行解码。 解码后的数...