質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

749閲覧

[JavaScript]イベントハンドラ"canplaythrough"を使用し、読み込んだファイルを再生しても途中で止まる

kutu

総合スコア257

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/03/28 22:25

[OS]
Android5

[ブラウザ]
ブラウザ(デフォルトで入っているソフト)

で下記のJavaScriptを実行しました。
途中で動画が止まることがあります。
"canplaythrough"は
「そのままの条件で再生した場合、最期まで止まらずに再生できる状態」
であるという認識なのですが、合っていますでしょうか?

また、止まる原因として考えられるのは
・端末スペック
・回線の速度
などが可能性高いでしょうか?

<video id="video_file" src="ooo.mp4"></video> var video_file = document.getElementById('video_file'); video_file.addEventListener("canplaythrough", function() { video_file.currentTime = 0 video_file.play(); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

mdnでのドキュメントによれば

https://developer.mozilla.org/en-US/docs/Web/Events/canplaythrough

The canplaythrough event is fired when the user agent can play the media, and estimates that enough data has been loaded to play the media up to its end without having to stop for further buffering of content.

とあるので, 正確には
「そのままの条件で再生した場合、最期まで止まらずに再生できると判断された状態」
であり, 動画再生が止まらないことを保証しているわけではありません.

従って, マシンスペックが不足している場合や, 部分的に動画のデコード負荷が高い場合, バッググラウンドの負荷が高まった場合, 通信回線が再生後に極端に狭まった場合, 転送されたデータにエラーが含まれていた場合など様々な要因で動画は停止(フレームスキップ)しえます.

投稿2018/03/28 22:52

defghi1977

総合スコア4756

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kutu

2018/03/29 01:53

ご返信有難うございます。 もう一つ質問ですが”canplaythrough”が認識されたにも関わらず、動画の再生が止まったりカクカクするのをJavaScript側で修正するのは難しいでしょうか?
defghi1977

2018/03/29 02:19

難しいと言うか, 具体的な対処策についてはわかりません. もしくは動画そのものを複数用意しておき, 「高画質ー高スペックー高速通信環境むけ」と「低画質ー低スペックー低速通信環境むけ」といったように選択可能とすることでしょうか
defghi1977

2018/03/29 02:37

定期的にcurrentTimeプロパティ(再生位置)を観察し, 実際の経過時間と比較することで再生がもたついていることを検知することは出来るかもしれません.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問