Генерация волны mp3 и предварительный рендеринг для загрузки страницы

Я хочу создать форму волны из mp3-файла. Я также хочу предварительно визуализировать сигнал, чтобы он был готов к отображению при загрузке страницы.

<?php
session_start();

include "DB.inc";

$xxid = $_POST['xxid'];
$sxxid = $_POST['sxxid'];

if(is_array($_FILES)) {

    if(is_uploaded_file($_FILES['userAudio']['tmp_name'])) {

        $sourcePath = $_FILES['userAudio']['tmp_name'];
        $temp = explode(".",$_FILES["userAudio"]["name"]);
        $newfilename = $_POST['sxxid'] . '.' .end($temp);
        $ext = end($temp);

        $common_path = "assets/$xxid";

        if (!is_dir($common_path)) {
            mkdir($common_path);
        }

        $common_path = "assets/$xxid/audio";

        if (!is_dir($common_path)) {
            mkdir($common_path);
        }

        $targetPath = $common_path.'/'.$newfilename;
        $web_common_path = SITE_LINK."/assets/$xxid/audio/";
        $web_targetPath = $web_common_path.$newfilename;

        $filename = array();
        $filename[0] = $common_path.$_POST['sxxid'].'.wav';
        $num_files = count($filename);

        for ($n=0; $n<$num_files; $n++) {
            if (file_exists($filename[$n])) {
                unlink ($filename[$n]);
            }
        }

        if(move_uploaded_file($sourcePath,$targetPath)) {
            $mp3 = $common_path.'/'.$_POST['sxxid'].'.mp3';
            shell_exec('ffmpeg -i ' . $targetPath . ' '. $mp3);

            ?>

            <audio controls>
                <source src="<?php echo $web_targetPath."?dasasd=".mt_rand(0, 50000); ?>" type="audio/wav" />
            </audio>

        <?php

        } else {
            echo "Uploaded file can not be moved";  
        }
    } else {
        echo "Uploaded file not found";
    }
} else {
    echo "Uploaded not allowed";
}

?>

person Asim khan    schedule 17.04.2016    source источник
comment
Просто дружеский совет. Возможно, вы захотите прочитать эту страницу: Руководство по вопросам с вопросами, чтобы вы могли всегда следите за тем, чтобы на ваши вопросы было легко ответить, и они были максимально ясными. Не забудьте указать все усилия, которые вы предприняли для решения проблемы, и что произошло, когда вы попытались решить эту проблему. Также не забудьте показать код и любые сообщения об ошибках!   -  person Matt C    schedule 17.04.2016
comment
Просмотрите эту запись.   -  person Matt C    schedule 17.04.2016