我正在做一个视频流项目。我有两种选择:
- 在 AsyncTask 中执行 myVidoeURI.Prepare() 方法并播放流式视频。
- 执行 myVideoURI.PrepareAsync() 方法,然后在 UI 线程中播放电影。
你的决定是什么?请支持你的选择。
我正在做一个视频流项目。我有两种选择:
你的决定是什么?请支持你的选择。
网络操作应在后台线程上执行,而不是主/UI 线程。
与选项 2 相比,选项 1 没有任何好处。即使使用选项 1,视频播放也只需要在 UI 线程上完成。使用 prepareAsync 将使您免于处理 AsyncTask 的生命周期。
选择选项 2。
MediaStream 方法 prepareAsync() 的文档说:
异步准备播放器进行播放。设置数据源和显示表面后,您需要调用 prepare() 或 prepareAsync()。对于流,您应该调用prepareAsync(),它会立即返回,而不是阻塞直到缓冲足够的数据。
我建议选择选项 1。