Bug 228971
| Summary: | decodeAudioData should support .mov files recorded by iPhone | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Rob <rallsopp06> |
| Component: | Web Audio | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | cdumez, jer.noble, rallsopp06, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 14 | ||
| Hardware: | iPhone / iPad | ||
| OS: | iOS 14 | ||
Rob
In Safari for iOS, the decodeAudioData method of the WebAudio api is unable to extract an audio buffer from .mov videos recorded with iPhone, despite the fact that the <video ...> element can play these videos and their audio correctly.
Running the following example from Safari in an iPhone X, the 'it failed... err:' alert is always shown when attempting to load a .mov file recorded with the phone:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>decodeAudioData test</title>]
</head>
<body>
<input type="file" accept="video/*" id="video-test-input">
<script>
const fileSelector = document.getElementById('video-test-input')
fileSelector.addEventListener('change', e => {
const [file] = e.target.files
const reader = new FileReader()
reader.addEventListener('load', () => {
new AudioContext({sampleRate: 44100})
.decodeAudioData(reader.result, function(buffer) {
alert('it worked! duration: ' + buffer.duration)
}, function (err) {
alert('it failed... err: ' + err)
})
})
reader.addEventListener('error', () => alert('file read failed... err: ' + reader.error))
reader.readAsArrayBuffer(file)
})
</script>
</body>
</html>
mp4 videos work fine with this example, but it limits the utility of this feature a lot when the videos natively recorded by the device can't be used.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/82047240>