Call Now

WhatsApp

Go back
to top

Arrow Icon
Site Logo

Audio recording using PHP Codeigniter

Shape Image Layout Star Icon Star Icon

Audio recording using PHP Codeigniter

How to Record Audio and Upload to Folder in Codeigniter

Today we are going to explain how to record manually and upload it to a folder then insert that audio file into the Database using the Codeigniter PHP framework. In this, you can easily record audio and upload it to the destination folder.

Record Audio using Codeigniter

Here are the steps to record audio and upload it to a folder using Codeigniter.

STEP 1 :                   

  • Install the latest version of Codeigniter and set up the required configuration like config, autoload, and database setup.
  • Open Application config file, in that file, open autoload and set the database in autoload libraries and set the URL in autoload helper.
  • Then we need to set up the base URL in the config file. Open the config file and set the required folder name where your audio folder should be.
  • After the configuration, we need to set the Database name so that your uploaded audio file will insert into the database.
  • For the audio recording Process, we need to include a js source file. So that your recording will process.

STEP  2:

  • After the configuration, you need to create an audio.php file in the views folder. In that audio.php file consists of the design (skeleton) of your recording process.

 audio.php file (Views)

<body>

    <article>

        <section class="experiment recordrtc">

            <h2 class="header">

              <select style="display:none;" class="recording-media">

                       <option  value="record-video">Video</option>

                       <option selected value="record-audio">Audio</option>

                       <option   value="record-screen">Screen</option>

            </select>

              <select style="display:none;"  class="media-container-format">

                    <option>WebM</option</

               </select>

               <button style="text-align:center;">Start Recording</button>

              </h2>

            <div style="display: none;">

                <button id="save-to-disk" style="display: none;">Save To Disk</button>

                <button id="open-new-tab" style="display: none;">Open New Tab</button>

                <button id="upload-to-server">Upload To Server</button>

            </div>

        </section>

</body>

 

STEP 3 :

  • After the audio recording process is done then the audio file moved to the controller. So you need to create one controller file in the name of the Audio.php file in the controller.
  • In this audio.php file, you moved the audio file to the destination folder. So you need to create an uploads folder in the application place. So that your recorded audio file will be moved to that uploads folder.

Audio.php file (Controller)

<?php

            defined('BASEPATH') OR exit('No direct script access allowed');

            class Audio extends CI_Controller {

                        /**

                         * Index Page for this controller.

                         *

                         * Maps to the following URL

                         * http://example.com/index.php/welcome

                         *- or -

                        * http://example.com/index.php/welcome/index

                        *- or -

                        * Since this controller is set as the default controller in

                        * config/routes.php, it's displayed at http://example.com/

                        * So any other public methods not prefixed with an underscore will

                        * map to /index.php/welcome/<method_name>

                        * @see https://codeigniter.com/user_guide/general/urls.html

                        */

            /*-------------- View-------------------*/

                    public function index()

                    {

                      $this->load->view('audio');

                      }

              public function audio_record(){

 

                if (!isset($_POST['audio-filename']) && !isset($_POST['video-filename'])) {

                  echo 'Empty file name.';

                  return;

                }else{

                  if (false && isset($_POST['audio-filename']) &&

                  strrpos($_POST['audio-    filename'], "RecordRTC-") !== 0) {

                    echo 'File name must start with "RecordRTC-"';

                    return;

                  }

                }

                $fileName = $tempName = $file_idx  = '';

                if (!empty($_FILES['audio-blob'])) {

                  $file_idx = 'audio-blob';

                  $fileName = $_POST['audio-filename'];

                  $tempName = $_FILES[$file_idx]['tmp_name'];

                } else {

                  $file_idx = 'video-blob';

                  $fileName = $_POST['video-filename'];

                  $tempName = $_FILES[$file_idx]['tmp_name'];

                }

                if (empty($fileName) || empty($tempName)) {

                  if(empty($tempName)) {

                    echo 'Invalid temp_name: '.$tempName;

                    return;

                  }

                  echo 'Invalid file name: '.$fileName;

                  return;

                }

                $filePath = 'uploads/' . $fileName;

                $allowed = array('webm', 'wav', 'mp4', 'mkv','mp3', 'ogg' );

                $extension = pathinfo($filePath, PATHINFO_EXTENSION);

              if (!$extension || empty($extension) || !in_array($extension, $allowed)) {

                  echo 'Invalid file extension: '.$extension;

                  return;

                }

                if (!move_uploaded_file($tempName, $filePath)) {

                  if(!empty($_FILES["file"]["error"])) {

                     echo 'Not uploaded because of error #'.$_FILES["file"]["error"];

                  }

                  else {

                    echo 'Problem saving file: '.$tempName;

                  }

                  return;

                }else {

           

 

                

                   $data['file'] = $fileName;

                   $this->load->model('Home_model');

                    $status=$this->Home_model->insert_audio($data);                                                                             

            }

}  }

 

 ?>

STEP 4:   

Audio (Database)

  •  You need to save your audio file to the database.
  •  For that create one Database named called audio and in that database you need to create one table called files. This table having column name id, file, and created time.

STEP 5:   

  • You need to save your audio file to the database. For that create one file named called Home_model.php in the model folder.
  • Call the audio file value to this model in Audio.php in Controller.
  • In this model insert the audio file into the database.

Home_model.php file (Models)

<?php

   class Home_model extends CI_Model

    {

                           public function insert_audio($data){

                              return  $this->db->insert('files',$data);

                           }                       

}

?>

STEP 6:   

  • Open the browser and run the code.
  • Click the Start Recording Button and click upload to server then your audio file save to the database and moved to the destination folder.

Tags :

How to upload image in CodeIgniter with database

Upload mp3 file in Codeigniter

File upload in CodeIgniter with database example

CodeIgniter file upload
File upload in CodeIgniter using database

How to display image from upload folder in Codeigniter

Upload mp4 file in Codeigniter

File upload in Codeigniter using ajax example

Related Posts

Offshore And Outsource jQuery Developers

jQuery is a lightweight cross-browser JavaScript library designed to simplify the client-side script

Read More
How to Record Audio and Upload to Folder in Codeigniter

Docker Usage

What is Docker? Docker is an open platform for developers and sysadmins to build, ship, and run d

Read More
How to Record Audio and Upload to Folder in Codeigniter

Hire Shopify Experts & Developers In India

Blazingcoders we provide dedicated resources for monthly, weekly and hourly bases. Shopify is one of

Read More