Spaces:
Runtime error
Runtime error
| // eslint-disable-next-line import/no-unresolved | |
| import soundThumbnail from '!base64-loader!./sound-thumbnail.png'; | |
| const soundPayload = sound => { | |
| const assetDataUrl = sound.asset.encodeDataURI(); | |
| const assetDataFormat = sound.dataFormat; | |
| const payload = { | |
| type: 'sound', | |
| name: sound.name, | |
| thumbnail: soundThumbnail, | |
| // Params to be filled in below | |
| mime: '', | |
| body: '' | |
| }; | |
| switch (assetDataFormat) { | |
| case 'wav': | |
| payload.mime = 'audio/x-wav'; | |
| payload.body = assetDataUrl.replace('data:audio/x-wav;base64,', ''); | |
| break; | |
| case 'mp3': | |
| payload.mime = 'audio/mp3'; | |
| // TODO scratch-storage should be fixed so that encodeDataURI does not | |
| // always prepend the wave format header; Once that is fixed, the following | |
| // line will have to change. | |
| payload.body = assetDataUrl.replace('data:audio/x-wav;base64,', ''); | |
| break; | |
| case 'ogg': | |
| payload.mime = 'audio/ogg'; | |
| payload.body = assetDataUrl.replace('data:audio/x-wav;base64,', ''); | |
| break; | |
| case 'flac': | |
| payload.mime = 'audio/flac'; | |
| payload.body = assetDataUrl.replace('data:audio/x-wav;base64,', ''); | |
| break; | |
| default: | |
| alert(`Cannot serialize for format: ${assetDataFormat}`); // eslint-disable-line | |
| } | |
| // Return a promise to make it consistent with other payload constructors like costume-payload | |
| return new Promise(resolve => resolve(payload)); | |
| }; | |
| export { | |
| soundPayload as default, | |
| soundThumbnail | |
| }; | |