对于我正在处理的 Web 应用程序,我需要根据从 PHP 脚本生成的 URL 将 WAV 音频文件从不同的服务器获取到 webAudio 缓冲区。
为此,我在 PHP 脚本中生成 URL,然后使用该 URL 以数组形式获取 WAV 文件的内容,如下所示:
$this->audioBuffer = file($this->stationAudioURL);
然后,在带有 webAudio 脚本的页面中,我尝试从 PHP 传递数组并在此处的 webAudio 上下文中对其进行解码:
<?php require_once('getSeismicData.php'); ?>
<script type="text/javascript">
var eventOneAudio = <?php echo json_encode($eventOne->audioBuffer); ?>;
var eventTwoAudio = <?php echo json_encode($eventTwo->audioBuffer); ?>;
var eventThreeAudio = <?php echo json_encode($eventThree->audioBuffer); ?>;
var eventOneBuffer = null;
var eventTwoBuffer = null;
var eventThreeBuffer = null;
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();
context.decodeAudioData(eventOneAudio, function(buffer){eventOneBuffer = buffer});
context.decodeAudioData(eventTwoAudio, function(buffer){eventTwoBuffer = buffer});
context.decodeAudioData(eventThreeAudio, function(buffer){eventThreeBuffer = buffer});
实现这一点的正确方法是什么?进一步来说:
1)我应该使用file()
还是file_get_contents()
获取 WAV 文件?
2)我应该使用json_encode()
还是直接echo
将wav文件直接用于javascript?
git 上的完整源代码:https ://github.com/felakuti4life/Seismokraft