teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

PHPタグ外し

2021/10/18 13:52

投稿

__xpa__
__xpa__

スコア2

title CHANGED
File without changes
body CHANGED
File without changes

3

試したことの追記

2021/10/18 13:52

投稿

__xpa__
__xpa__

スコア2

title CHANGED
File without changes
body CHANGED
@@ -140,6 +140,9 @@
140
140
  ### 試したこと
141
141
 
142
142
  何種類か動画を差し替えて試したところ、2回目のfetchの容量が10mbに満たない場合は読み込みに成功しました
143
+ また、2回目のfetch分を別ファイルとしてphpを介さずapacheから取得してみましたが、同様にfetchが完了しませんでした。
144
+ おそらくchromeの独自仕様のせいだと思うんですが如何せん情報がないもので。
145
+ なにかわかる方いらっしゃいましたらよろしくおねがいします。
143
146
 
144
147
  ### 補足情報(FW/ツールのバージョンなど)
145
148
  ・サーバー

2

タイトル変更:エラー明記

2021/10/18 13:51

投稿

__xpa__
__xpa__

スコア2

title CHANGED
@@ -1,1 +1,1 @@
1
- ChromeでのみFetchが完了しない
1
+ Chromeでのみ「CAUTION: request is not finished yet! 」でFetchが完了しない
body CHANGED
File without changes

1

mac版chrome,firefoxのスクリーンショットを追加

2021/10/18 11:43

投稿

__xpa__
__xpa__

スコア2

title CHANGED
File without changes
body CHANGED
@@ -7,8 +7,12 @@
7
7
  chromeでのみ、2度目のfetchが完了しません。
8
8
  chrome(v94.0.4606.81) on windows10
9
9
  ![chrome](64e68fd2a87b706cc230bfa43be6cefa.png)
10
+ chrome(v92.0.4515.159) on macos bigsur(v11.6)
11
+ ![chrome](a0f4f4c09e97f7dd6ff230493b685c6f.png)
10
12
  firefox(v93.0) on windows10
11
13
  ![firefox](eab6ebd3780ce2629bce9bc9aedc325e.png)
14
+ firefox(v93.0) on macos bigsur(v11.6)
15
+ ![firefox](991a1b364eed7014c489fc5cebb6cbc3.png)
12
16
  safari(v15.0) on macos bigsur(v11.6)
13
17
  ![safari](4701ed7442ead9fe4e9b62e49765354d.png)
14
18
  ※1回目のfetchで取得した分に関しては再生できてます。
@@ -21,7 +25,7 @@
21
25
  <meta charset="utf-8">
22
26
 
23
27
  <script type="text/javascript">
24
- var FILE = "";//request url
28
+ var FILE = "";//request url
25
29
  var chunk_size = 10 * 1024 * 1024; // 10mb
26
30
  var current_chunk = 1;
27
31
  var file_size = chunk_size+1;
@@ -45,18 +49,14 @@
45
49
  console.log('mediaSource readyState: ' + this.readyState);
46
50
 
47
51
  var readChunk = async(chunk)=> {
48
- console.log(chunk);
49
52
  const req = await fetch(FILE,{headers:{'Range':'bytes='+(chunk*chunk_size)+'-'+(((chunk+1)*chunk_size<=file_size)?((chunk+1)*chunk_size-1):(file_size-1))}});
50
53
  const res = await req.arrayBuffer();
51
- console.log(chunk);
52
54
  for(let value of req.headers.entries()){
53
55
  if (value[0]=='content-range') {
54
56
  file_size = parseInt(value[1].split("/").pop());
55
57
  }
56
58
  }
57
- console.log(chunk);
58
59
  sourceBuffer.appendBuffer(new Uint8Array(res));
59
- console.log(chunk);
60
60
  };
61
61
 
62
62
  sourceBuffer.addEventListener('update', async function(e) {
@@ -88,7 +88,7 @@
88
88
  }
89
89
  is_buffering=true;
90
90
  if (video.buffered.end(0)-60<video.currentTime&&current_chunk < Math.ceil(file_size/chunk_size)) {
91
- await readChunk(current_chunk);
91
+ await readChunk(current_chunk);//おそらくここのfetchで止まってる
92
92
  current_chunk++;
93
93
  }
94
94
  is_buffering=false;
@@ -111,7 +111,9 @@
111
111
  ```php
112
112
  <?php
113
113
  /*
114
+
114
115
  認証処理とかパスの生成(略)
116
+
115
117
  ダウンロード処理(ResumeDownload):https://gist.github.com/kosinix/4cf0d432638817888149
116
118
 
117
119
  */