ExoPlayer 和 SimpleExoPlayer 有什么区别?
What's the difference between ExoPlayer and SimpleExoPlayer?
我正在学习如何使用 Exoplayer,但我无意中遇到了这个问题。在 Exoplayer 教程中,我读到:
"For the vast majority of use cases SimpleExoPlayer.Builder should be used. This builder returns SimpleExoPlayer, which extends ExoPlayer to add additional high level player functionality."
指的是哪种高级播放器功能?
SimpleExoPlayer 使用 ExoPlayer 作为基础提供额外的功能。例如,它提供了一种功能,可以在音频从耳机重新路由到设备扬声器时自动暂停播放器。您只需将 true 传递给函数 setHandleAudioBecomingNoisy
simpleExoPlayer.setHandleAudioBecomingNoisy(true)
它还使用户能够仅通过传递上下文来创建 ExoPlayer 的实例。它将使用默认的 renderFactory、trackSelector、LoadControl 等。
它提供基本属性,如 videoFormat、audioFormat、audioSessionId 等。
您可以通过 SimpleExoPlayer.java 了解更多信息。只需按住 CTRL 并单击 class 名称即可打开它的源代码。
ExoPlayer
只是一个扩展接口Player
的接口。它只是定义了播放器的骨架,并没有真正实现播放器的功能逻辑。您可以实现接口 ExoPlayer
来创建您自己的播放器。
SimpleExoPlayer
是一个 class。它是实现接口 BasePlayer
中定义的播放器的所有功能的实际播放器。 BasePlayer
还扩展了接口 Player
.
您应该深入研究 ExoPlayer
源代码以获取更多详细信息。
我正在学习如何使用 Exoplayer,但我无意中遇到了这个问题。在 Exoplayer 教程中,我读到:
"For the vast majority of use cases SimpleExoPlayer.Builder should be used. This builder returns SimpleExoPlayer, which extends ExoPlayer to add additional high level player functionality."
指的是哪种高级播放器功能?
SimpleExoPlayer 使用 ExoPlayer 作为基础提供额外的功能。例如,它提供了一种功能,可以在音频从耳机重新路由到设备扬声器时自动暂停播放器。您只需将 true 传递给函数 setHandleAudioBecomingNoisy
simpleExoPlayer.setHandleAudioBecomingNoisy(true)
它还使用户能够仅通过传递上下文来创建 ExoPlayer 的实例。它将使用默认的 renderFactory、trackSelector、LoadControl 等。 它提供基本属性,如 videoFormat、audioFormat、audioSessionId 等。
您可以通过 SimpleExoPlayer.java 了解更多信息。只需按住 CTRL 并单击 class 名称即可打开它的源代码。
ExoPlayer
只是一个扩展接口Player
的接口。它只是定义了播放器的骨架,并没有真正实现播放器的功能逻辑。您可以实现接口 ExoPlayer
来创建您自己的播放器。
SimpleExoPlayer
是一个 class。它是实现接口 BasePlayer
中定义的播放器的所有功能的实际播放器。 BasePlayer
还扩展了接口 Player
.
您应该深入研究 ExoPlayer
源代码以获取更多详细信息。