1

对于我正在处理的 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

4

0 回答 0