2016-11-25 4 views
2

私はhtml5ビデオとビデオとやりとりし、ビデオのcurrentTimeを使用するいくつかのコントロールを持つアプリケーションを構築しています。リアクションのhtml5ビデオでの真実の単一のソース

私が理解しているように、Appコンポーネントは、そのビデオの現在の状態を保持し、他の子に渡す必要があります(たとえば、現在の時間の何秒目かを示すディスプレイ)。

私はキーボードのショートカットを押して先にビデオをスキップするとします。そうすれば、私はApp状態を更新し、html5ビデオタグを持つコンポーネントにcurrentTimeを渡す必要があるので、それ自身を更新します。

しかし、ビデオが再生されているときは、アプリケーションの状態を常に更新しているので、状態をビデオに渡す必要があり、再生中のヒックアップが発生することがあります。

"shouldComponentUpdate"関数を使用してこれを修正することができましたが、ドキュメントは今後使用されなくなる可能性があるため、使用することをお勧めします。私はshouldComponentUpdate機能を自分のブール値のフラグを使って模倣することができますが、それは私のコードの臭いを悪くするようになりますが、フラグを渡す状態を制御しようとすべきではないようです。

ここでは、 "真実の単一のソース"はhtml5ビデオのcurrentTimeプロパティである必要がありますが、それは反応が意味する状態階層に適合していないようです(Appコンポーネントは状態を維持し、

私はcurrentTimeをアプリケーションの状態としてとどめて、ビデオのアップデートをハッキングして、ジッタやループを起こさないようにしてください。アプリのコンポーネントとは対照的に、

+0

それを使用するか、ビデオコンポーネントにCURRENTTIMEの状態を管理することが可能であろう? –

+0

私は、兄弟コンポーネントが状態を読み書きする必要があるからだとは思いませんが、私は本当にわかりません。パターンは親に任せているようです。それ以外の場合は、ビデオコンポーネントの状態を維持することが可能です –

+0

非常に興味深い問題ですが、本当に唯一の問題は、ビデオが現時点を変更するために反応すると、将来の再生につながります。ただし、ビデオのcurrentTimeの更新をオフにすることはできません。これは、兄弟コンポーネントからの正式な更新にはもう応答しないためです。 currentTimeで何らかの「送信者」を渡して、送信者自身が変更を無視するようにする必要があるように、私には聞こえます。私は答えを考えます – narvoxx

答えて

-1

ここで何を行うか、または単に再発明するホイールを防ぎ、

http://mderrick.github.io/react-html5video/

+0

私は実際に彼らがどのように問題を解決したかを研究していますが、彼らが取った設計決定のいくつかが気に入らず、私が使っている技術を理解したいのですが、主な著者と他の3人の協力者。 –

+0

あなたが彼らのアプローチを読んで理解した後、彼らのアプローチが嫌な理由についてのいくつかの詳細なコメントを返信して更新してください。あなたが何か違う何かをやろうとしたら、その違いが何であるか私にここで教えてください。 – skav

関連する問題