Replace switch in YouTube error handler with object literal

This commit is contained in:
Albin Larsson 2018-06-15 14:20:10 +02:00
parent 213cfe8c84
commit c373ed72d7

View File

@ -200,46 +200,22 @@ const youtube = {
}, },
events: { events: {
onError(event) { onError(event) {
// If we've already fired an error, don't do it again // YouTube may fire onError twice, so only handle it once
// YouTube fires onError twice if (!player.media.error) {
if (is.object(player.media.error)) { const code = event.data;
return;
}
const detail = {
code: event.data,
};
// Messages copied from https://developers.google.com/youtube/iframe_api_reference#onError // Messages copied from https://developers.google.com/youtube/iframe_api_reference#onError
switch (event.data) { const message = ({
case 2: 2: 'The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.',
detail.message = 5: 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.',
'The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.'; 100: 'The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.',
break; 101: 'The owner of the requested video does not allow it to be played in embedded players.',
150: 'The owner of the requested video does not allow it to be played in embedded players.',
}[code]) || 'An unknown error occured';
case 5: player.media.error = { code, message };
detail.message =
'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
break;
case 100:
detail.message =
'The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.';
break;
case 101:
case 150:
detail.message = 'The owner of the requested video does not allow it to be played in embedded players.';
break;
default:
detail.message = 'An unknown error occured';
break;
}
player.media.error = detail;
triggerEvent.call(player, player.media, 'error'); triggerEvent.call(player, player.media, 'error');
}
}, },
onPlaybackQualityChange() { onPlaybackQualityChange() {
triggerEvent.call(player, player.media, 'qualitychange', false, { triggerEvent.call(player, player.media, 'qualitychange', false, {