ウーパの手習い

私的開発メモ用途なのでご容赦ください。2020年現在はSwiftとUnityでARのお勉強中。

VRChatSDK: VRCVideoPlayer, VRCVideoStreamの挙動

一時停止・再生再開の挙動

VRCVideoPlayer(オーナー)

A)Testビルド時:一時停止→一時停止再度押し〇(止めた場所から再生再開)
B)Publishビルド時:一時停止→一時停止再度押し〇
C)Public公開後:

VRCVideoStream(オーナー)

D)Testビルド時:一時停止→一時停止再度押し×(最初から再生される)
E)Publishビルド時:一時停止→一時停止再度押し〇
F)Public公開後:

VRCVideoPlayer(オーナー以外)
G)Publishビルド時:一時停止→一時停止再度押し〇
H)Public公開後:

VRCVideoStream(オーナー以外)
I)Publishビルド時:一時停止→一時停止再度押し△(最初から再生される時もあったり、止めた場所から再生されることもあり、良く分からない
J)Public公開後:

A,B,E,Gの時、Testビルド時&Publishビルド時は、一時停止ボタンを押して一時停止、もう一度一時停止ボタンを押すことでその場所から再生が再開される。なので、一時停止ボタンには「Pause/Resume」と記載するのが良さそう。一方、一時停止中に、再生ボタンを押すと最初から再生されてしまう。

なお、全てトリガーボタンは AlwaysBufferOne に設定している。

途中入室時の同期

オーナーが動画を再生している時に、他のユーザーが入室してきた時、他のユーザーにはどう表示されるかについて。
・VRCVideoPlayer, VRCVideoStreamとも、入室直後数秒は白スクリーンが表示されることもあるが、3秒も待てば同期された状態で映像が再生される。

オーナーが一時停止して、他のユーザーが再開させるという操作でもビデオは期待通りに同期できた。
※(I)の△の結果があるので、何度もテストしないといけないかもしれないが。

自動再生について

VRCVideoPlayerコンポーネントはVideoPlayerコンポーネントに依存しているが、VideoPlayerコンポーネントのPlay On Awakeは効かないようで、オーナー入室時にはビデオが自動再生される。改修するとすれば、トリガーで表示/非表示を切り替えるスイッチを作るべきなのかもしれない。
一方、VRCVideoStreamコンポーネントは、それ自身にAutoStartトグルがあるので、オフにしておけば入室時は白スクリーン状態で待機できる

確認したいこと

VRCVideoStreamはその名の通りYouTubeライブ等のストリーミング映像の同期再生ができるコンポーネントだけど、通常のYouTube動画再生にも積極的に活用していいのかよく分からない。VRCVideoPlayerよりパフォーマンスが向上しているのか等は体感では分からない。