8000 fix: failed to execute start on TimeRanges (#71) · zhihu/griffith@b59c4d0 · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Commit b59c4d0

Browse files
authored
fix: failed to execute start on TimeRanges (#71)
1 parent 3702079 commit b59c4d0

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

packages/griffith-mp4/src/mse/controller.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ export default class MSE {
140140
const time = isSeek ? this.video.currentTime : Math.floor((start + end) / 2)
141141
const buffered = this.video.buffered
142142

143-
if (buffered) {
143+
if (buffered && buffered.length > 0) {
144144
for (let i = 0; i < buffered.length; i++) {
145145
if (time >= buffered.start(i) && time <= buffered.end(i)) {
146146
return true
@@ -213,7 +213,9 @@ export default class MSE {
213213
const track = this.sourceBuffers[key]
214214
const length = track.buffered.length
215215

216-
track.remove(track.buffered.start(0), track.buffered.end(length - 1))
216+
if (length > 0) {
217+
track.remove(track.buffered.start(0), track.buffered.end(length - 1))
218+
}
217219
}
218220
}
219221

packages/griffith-mp4/src/player.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export default class Player extends Component {
2929
const currentTime = this.video.currentTime
3030
const buffered = this.video.buffered
3131

32-
if (isSafari) {
32+
if (isSafari && buffered && buffered.length > 0) {
3333
if (currentTime - 0.1 > buffered.start(0)) {
3434
this.mse.seek(this.video.currentTime)
3535
} else if (currentTime < buffered.start(0)) {
@@ -57,7 +57,12 @@ export default class Player extends Component {
5757
handleVideoProgress = e => {
5858
const buffered = this.video.buffered
5959
const currentTime = this.video.currentTime
60-
if (isSafari && buffered.length > 0 && currentTime < buffered.start(0)) {
60+
if (
61+
isSafari &&
62+
buffered &&
63+
buffered.length > 0 &&
64+
currentTime < buffered.start(0)
65+
) {
6166
this.handleVideoSeeking()
6267
}
6368
this.props.onProgress(e)

0 commit comments

Comments
 (0)
0