安卓ExoPlayer的“prepare()”方法究竟是做什么的?

7

我注意到的唯一区别是,如果我在调用play()之前调用prepare(),我将会看到进度指示器,并且它会在PlayerView中预加载数据,除此之外,如果我只是调用play()而没有调用prepare(),我无法感知到任何区别。

另外文档上没有提到任何内容:https://exoplayer.dev/doc/reference/com/google/android/exoplayer2/SimpleExoPlayer.html

public void prepare()

Description copied from interface: Player

Prepares the player.    //<- ???

Specified by:
prepare in interface Player

“准备”告诉玩家要获取播放所需的所有资源。 - undefined
@Usama Altaf 在 play() 之前调用它有什么好处? - undefined
5
它开始从源加载文件(填充缓冲区)。当播放本地文件时,您可能不会注意到它,但对于远程流,它将减少初始延迟。 - undefined
@Pawel 那说得通。 - undefined
1个回答

0

你可以在javadoc中找到一些线索

这将使播放器退出空闲状态,并开始加载媒体并获取播放所需的资源。

还有另一种情况,你想调用prepare。

通过调用ExoPlayer.prepareSource,可以重试失败或停止的播放。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接