웹 음성녹음 솔루션 : 키위 보이스 레코더

 

PC 또는 Mobile기기에 연결 되어 있는 마이크로 음성을 녹음하여 녹음 파일을 재생, 다운로드 또는 웹 서버에 업로드 할 수 있는 HTML5 웹 기반의 녹음 솔루션입니다.

웹사이트에 맞춤형으로 웹 음성녹음 서비스를 구축 할 수 있습니다.

HTML5,JavaScript 기반으로 웹 서버 OS 및 웹 사이트 제작 언어에 상관 없이 음성 녹음 서비스를 구축하여 운영 할 수 있습니다.

음성 녹음은 mp3파일로 녹음되며 녹음 시간 길이는 원하는 최대 시간(초 단위)을 설정 할 수 있습니다.

 

 

3일 동안 무료로 테스트를 진행해보세요.


서비스 신청 후 3일 동안 무료로 웹서버에 설치하여 테스트할 수 있습니다.

테스트를 위한 임시 라이선스가 발급되며 신청 후 이메일로 안내해드립니다.

테스트 완료 후 구매 결제를 진행합니다.

무료 테스트 기간은 구매 신청 당일을 포함하여 제공됩니다.

주말 및 공휴일은 무료 테스트 기간에 포함되지 않습니다.

 

 

키위 보이스 레코더 라이선스 구매 고객사

 
2024 9 21일 현재 키위 보이스 레코더 라이선스를 구매한 고객사는 113곳 입니다.
 

 

웹 음성녹음 체험하기

 

웹 음성 녹음 체험 URL에 접속한 PC에 마이크가 연결되어 있어야 합니다. 모바일 기기에서는 바로 사용 할 수 있습니다.

웹 음성녹음 체험 URL에 접속 후 마이크 사용 권한 요청 메시지창이 뜨면 반드시 허용해주세요.

사용자 PC 또는 모바일 기기에서 웹브라우저 오류가 발생하거나 일부 기기 또는 구 버전의 웹브라우저에서 녹음이 정상적으로 되지 않을 수 있습니다.

사용자 PC 또는 모바일 기기에서 웹브라우저 최신 버전 및 마이크 연결 상태 등을 반드시 확인해 주세요.

 

웹 음성녹음 체험하기

 

웹페이지 HTML 적용방식

 

HTML과 Javascript로 웹페이지에 적용합니다. 설치파일에 Javascript파일 등이 모두 포함되어 함께 제공됩니다. 디자인은 자유롭게 변경 할 수 있습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>키위 보이스 레코더 - Kiwi Voice Recorder</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="./lib/jquery-3.7.0.min.js"></script>
    <script src="./lib/setup.js"></script>
    <script src="./lib/audioRecorder.min.js"></script>
    <style>
        .BUTTON { margin: 0 10px 10px 0; }
        .visualizer_canvas { width: 100%; height: 200px; background-color: #000000; }
        #id_timer1 { float:left; }
        #id_timer2 { float:left; }
        #max_recording_time { float:left; }
        .wrap::after { content: ""; display: block; clear: both; }
    </style>
  </head>
  <body>
    <fieldset id="fieldset_black">
        <legend id="legend_black">키위 보이스 레코더 (Kiwi Voice Recorder)</legend>
        <div id="fieldset_div">&#8226; 서비스 신청 및 안내 : <a href="https://www.kiwisoft.kr" target="_blank">https://www.kiwisoft.kr</a></div>
        <div id="fieldset_div">&#8226; Copyright © 앤아이비디앤. All rights reserved.</div>
    </fieldset>
    <br><br>
 
 
 
 
    <h3>Control1 : 녹음 컨트롤 1</h3>
 
    <h4>- 비주얼라이저 (Visualizer) Type: V1 (V1,V2 중에 선택 가능)</h4>
    <!-- visualizer : 가로,세로 사이즈 및 기본 배경색을 CSS에서 원하는 값을 지정합니다. 비주얼라이저를 사용하지 않는 경우 아래 canvas 태그는 주석처리 하시면 됩니다. -->
    <canvas id="visualizer_canvas_v1_1" class="visualizer_canvas"></canvas>
    <br><br>
 
    <button type="button" id="recordButton1" onclick="startRecording('visualizer_canvas_v1_1','v1','id_timer1','audio_player1','audio_button1','audio_log1');">녹음시작</button>
    <button type="button" id="pauseButton1" onclick="pauseRecording('audio_log1')">녹음일시정지(Pause)</button>
    <button type="button" id="resumeButton1" onclick="resumeRecording('audio_log1')">녹음다시시작(Resume)</button>
    <button type="button" id="stopButton1" onclick="stopRecording('audio_log1');">녹음종료</button>
 
 
    <h4>- Player : 녹음 종료 후 재생 플레이어가 보여집니다.</h4>
    <div id="audio_player1"></div>
 
    <h4>- Play,Download,Upload : 녹음 종료 후 녹음파일 재생,mp3 다운로드,mp3 업로드 버튼을 생성합니다.</h4>
    <div id="audio_button1"></div>
 
    <h4>- Timer : 녹음 시간 진행 표시</h4>
    <div class="wrap">
    <div id="id_timer1">0:00</div> 
    <div id="max_recording_time">/<script>document.write(recordTimeText());</script></div>
    </div>
 
    <h4>- Log : 녹음 진행 로그를 표시합니다.</h4>
    <div id="audio_log1"></div>
 
 
 
 
    <br><br><hr><br><br>
 
 
 
 
    <!-- 한 화면에 녹음 기능을 2개 이상 추가하는 경우 아래 방식으로 추가합니다. -->
    <h3>Control2 : 녹음 컨트롤 2 (한 화면에 녹음 기능을 2개 이상 추가하는 경우 아래와 같이 추가 가능)</h3>
 
    <h4>- 비주얼라이저 (Visualizer) Type: V2 (V1,V2 중에 선택 가능)</h4>
    <!-- visualizer : 가로,세로 사이즈 및 기본 배경색을 CSS에서 원하는 값을 지정합니다. 비주얼라이저를 사용하지 않는 경우 아래 canvas 태그는 주석처리 하시면 됩니다. -->
    <canvas id="visualizer_canvas_v2_1" class="visualizer_canvas"></canvas>
    <br><br>
 
    <button type="button" id="recordButton2" onclick="startRecording('visualizer_canvas_v2_1','v2','id_timer2','audio_player2','audio_button2','audio_log2');">녹음시작</button>
    <button type="button" id="pauseButton2" onclick="pauseRecording('audio_log2')">녹음일시정지(Pause)</button>
    <button type="button" id="resumeButton2" onclick="resumeRecording('audio_log2')">녹음다시시작(Resume)</button>
    <button type="button" id="stopButton2" onclick="stopRecording('audio_log2');">녹음종료</button>
 
 
    <h4>- Player : 녹음 종료 후 재생 플레이어가 보여집니다.</h4>
    <div id="audio_player2"></div>
 
    <h4>- Play,Download,Upload : 녹음 종료 후 녹음파일 재생,mp3 다운로드,mp3 업로드 버튼을 생성합니다.</h4>
    <div id="audio_button2"></div>
 
    <h4>- Timer : 녹음 시간 진행 표시</h4>
    <div class="wrap">
    <div id="id_timer2">0:00</div> 
    <div id="max_recording_time">/<script>document.write(recordTimeText());</script></div>
    </div>
 
    <h4>- Log : 녹음 진행 로그를 표시합니다.</h4>
    <div id="audio_log2"></div>
    
    
    
    <br><br><hr><br><br>
 
 
 
 
    <script src="./lib/audioFunction.min.js"></script>
    <script src="./lib/appRecorder.js"></script>
  </body>
</html>
 
 
 
 
 

JAVASCRIPT 주요 기능 설정

자바스크립트 설정 파일(setup.js)에서 주요 기능 설정을 간편하게 할 수 있습니다.

녹음 컨트롤과 관련된 자바스크립트 주요 함수를 직접 커스트마이징 할 수 있도록 별도의 자바스크립트 파일을 함께 제공합니다.

 

- setup.js 주요 설정

 
////////////////////////////////////////////////////
// KiwiVoiceRecorder                              //
// https://www.kiwisoft.kr                        //
// Copyright © 앤아이비디앤. All rights reserved.  //
////////////////////////////////////////////////////
 
// Kiwi Recorder 서비스 버전
var Kiwi_Recorder_Version = 17
 
// 라이선스 키 (정식 라이선스키로 수정 등록하세요.)
var KVR_LICENSE_KEY = "lJchkbbwGCt66C_"
 
// 녹음되는 오디오 파일 인코딩 타입 선택 (mp3만 가능합니다.)
var encodingTypeSelect = "mp3";
 
// 최대 녹음 시간(초) - 녹음 시간이 설정 값을 초과하면 자동으로 녹음이 종료됩니다.
var recordTimeLimit = 300;
 
// 녹음 전 버튼 클릭 오류 메시지
var recordingCheckErrorMsg = "녹음을 먼저 진행하세요.";
var preRecordingCheckErrorMsg = "이전 녹음을 먼저 완료해주세요."// 한 화면에 녹음 기능을 2개 이상 포함시킨 경우 -> 이전 녹음 완료 전 다음 녹음 버튼을 클릭하였을 경우
 
// 녹음 로그 메시지
var readyMessage = "> 녹음을 시작합니다.";  
var startMessage = "> 녹음이 시작되었습니다."
var pauseMessage = "> 녹음을 일시 정지합니다.";  
var resumeMessage = "> 녹음을 계속 진행합니다.";  
var stopMessage = "> 녹음이 종료되었습니다.";  
var endMessage = "> 인코딩이 완료되었습니다.";  
var uploadSuccessMessage = "업로드가 완료되었습니다.";         // MP3 서버 업로드 성공 알림
var uploadFailMessage = "업로드 도중 오류가 발생하였습니다.";   // MP3 서버 업로드 실패 알림
var playMessage = "> 녹음 파일을 재생합니다.";  
var playPauseMessage = "> 녹음 파일 재생을 일시 정지합니다.";  
var playResumeMessage = "> 녹음 파일을 계속 재생합니다.";  
 
// 웹 브라우저 지원 여부 메시지
var chkbrowsermsg = "현재 웹브라우저에서는 녹음 기능을 지원하지 않습니다. 최신 버전의 구글 크롬(Chrome), 마이크로스프트 엣지(Edge) 또는 애플 사파리(Safari)  웹브라우저에서 접속해주세요.";
 
// 녹음 파일 서버 업로드 처리 URL 지정
var uploadUrl = "/Kiwi_Recorder/upload.php";
 
// mp3lib 경로를 지정합니다.(절대경로)
var mp3libUrl = "/Kiwi_Recorder/lib/mp3lib.min.js";
 
 
// 비주얼라이저(visualizer) v1 설정 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var visualizerV1BackColor = "#E2E2E2";  // 배경색상 코드
var visualizerV1LineColor = "#5357FF";  // 라인색상 코드 
var visualizerV1lineWidth = 2;          // 라인두께 (1,2,3 ...) 
 
// 비주얼라이저(visualizer) v2 설정 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var visualizerV2BackgroundColor = "#E2E2E2";   // 배경색상 코드
 
/* 
비주얼라이저(visualizer) 바(bar) 색상을 선택하거나 직접 색상코드를 설정합니다.
비주얼라이저(visualizer) 바(bar) 색상은 기본으로 제공하는 a,b,c,d 4가지 중에서 한 가지를 선택하여 설정 할 수 있습니다. 
기본 제공 색상을 선택하지 않고 색상을 직접 설정 할 경우 색상코드를 입력합니다. ( 예: var visualizerV2BarColor = "#FF0000"; )
*/
var visualizerV2BarColor = "a"
 
// 비주얼라이저(visualizer) 바(bar) 민감도 설정 (비주얼라이저 바의 움직임 정도를 설정합니다. 1 이상의 숫자로 지정하세요. 소수 가능, 기본값: 3)
var visualizerV2Sensor = 3;  
 
/*
주의사항 : 비주얼라이저는 녹음시에 동작하며 V1, V2 중에서 한 가지만 선택하여 사용할 수 있습니다. V1, V2 모두 true로 적용하여 사용하면 오류가 발생합니다.
*/
 
 
// 아래 코드는 수정하지 마세요. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var recordTimeText = function() {
    var recordTimeM = Math.floor(recordTimeLimit / 60);
    var recordTimeS = recordTimeLimit % 60;
    if(recordTimeS<10) {
        recordTimeS = "00";
    }
    if(!recordTimeM || recordTimeM < 1) {
        recordTimeM = "0";
    }
    var resultTime = recordTimeM + ":" + recordTimeS; 
    return resultTime;
};
 
 
 
 

 

 

녹음 및 이벤트

녹음을 완료하고 필요한 이벤트를 실행합니다. Ajax를 사용하여 녹음 파일을 웹서버에 업로드 할 수 있습니다.
필요한 기능이 있는 경우 코드를 추가하여 사용하세요.
녹음 파일의 업로드 경로(URL)을 직접 지정하여 서버단에서 파일업로드 처리 및 DB 저장 등의 처리를 할 수 있습니다.
서버단에서 파일업로드 처리와 관련하여 php 예제 소스 파일(upload.php)을 함께 제공합니다. asp 또는 jsp를 사용하시는 경우 직접 제작해주셔야 합니다.

 

- appRecorder.js 예제

 
////////////////////////////////////////////////////
// 키위 보이스 레코더 - Kiwi Voice Recorder       //
// https://www.kiwisoft.kr                        //
// Copyright © 앤아이비디앤. All rights reserved. //
////////////////////////////////////////////////////
 
// 녹음 시작(start) 
function startRecording(visualizer_canvas_id,visualizer_canvas_ver,timer_id,audio_player,audio_button,audio_log) { 
    _startRecording(visualizer_canvas_id,visualizer_canvas_ver,timer_id,audio_player,audio_button,audio_log); 
}
 
// 녹음 일시 정지(pause)
function pauseRecording(audio_log) {
    _pauseRecording(audio_log);
}
 
// 녹음 다시 시작(resume)
function resumeRecording(audio_log) {
    _resumeRecording(audio_log);
}
 
// 녹음 종료(stop)
function stopRecording(audio_log) {
    _stopRecording(audio_log);    
}
 
// 녹음 진행 과정 로그 표시 
/*
- audio_log : example.html 소스 코드에서 로그 표시 div id -> "audio_log1"
- viewLog 함수명 및 매개변수 변경 금지
*/
function viewLog(str, url = null, audio_log) {
    if($("#"+audio_log).length > 0) {
        const newDiv = document.createElement("div");
        newDiv.appendChild(document.createTextNode(str));
        document.getElementById(audio_log).prepend(newDiv);
    }
}
 
// 녹음 종료 후 재생 플레이어 실행 및 녹음파일재생,녹음파일 계속 재생,녹음파일 재생 일시정지,MP3 다운로드,MP3 업로드 버튼 표시 설정
/*
- audio_player : example.html 소스 코드에서 플레이어 표시 div id -> "audio_player1" 
- audio_button : example.html 소스 코드에서 다운로드 및 업로드 버튼 표시 div id -> "audio_button1"
- viewRecording 함수명 및 매개변수 변경 금지
- 각 상황에 맞게 플레이어,버튼 등의 표시 여부를 직접 수정할 수 있습니다.
*/
function viewRecording(url,blobvalue,audio_player,audio_button) { 
    if($("#"+audio_button).length > 0) {
        $("#"+audio_button).empty();
    }
 
    if($("#"+audio_player).length > 0) {
        $("#"+audio_player).empty();
    }
 
    // 오디오 태그 생성
    var newAudio = document.createElement("audio");
    newAudio.src = url;
    newAudio.controls = true;
    newAudio.id = "player" + Date.now(); 
 
    // 녹음 파일 재생 오디오 플레이어를 화면에 표시합니다.
    if($("#"+audio_player).length > 0) {
        document.getElementById(audio_player).prepend(newAudio); 
    }
 
    // mp3 파일 다운로드 하이퍼링크 생성 (사용 시 아래 주석을 제거합니다.)
    /*
    if($("#"+audio_button).length > 0) {
        // 하이퍼링크 태그 생성
        const downLink = document.createElement("a");
        downLink.href = url;
        downLink.download = "record_" + Date.now() + ".mp3"; // mp3 파일명 지정
        downLink.appendChild(document.createTextNode("mp3 다운로드")); 
        // mp3 파일 다운로드 하이퍼링크를 화면에 표시합니다.
        document.getElementById(audio_button).prepend(downLink);
    }
    */
 
    // mp3 파일 다운로드 버튼 생성
    if($("#"+audio_button).length > 0) {
        var dbuttonID = "downloadButton" + Date.now();
        var dbutton = document.createElement("button");
        dbutton.type = 'button';
        dbutton.id = dbuttonID;
        dbutton.innerHTML = 'mp3 다운로드';
        dbutton.className = 'BUTTON';
        dbutton.onclick = function() {
            const downLink = document.createElement("a");
            downLink.href = url;
            downLink.download = "record_" + Date.now() + ".mp3"// mp3 파일명 지정
            downLink.click();
        };
        /* mp3 파일 다운로드 버튼을 화면에 표시합니다. */
        document.getElementById(audio_button).prepend(dbutton);
    }
 
    // mp3 서버 업로드 버튼 생성
    if($("#"+audio_button).length > 0) {
        var ubuttonID = "uploadButton" + Date.now();
        var ubutton = document.createElement("button");
        ubutton.type = 'button';
        ubutton.id = ubuttonID;
        ubutton.innerHTML = 'mp3 업로드';
        ubutton.className = 'BUTTON';
        /* onClick 이벤트로 uploadRecording(blobvalue) 서버 업로드 함수 호출 */
        ubutton.onclick = function() {
            uploadRecording(blobvalue);
        };
        /* mp3 파일 업로드 버튼을 화면에 표시합니다. */
        document.getElementById(audio_button).prepend(ubutton);
    }
 
    // 녹음 종료 후 녹음파일 재생(Play) 버튼 생성
    if($("#"+audio_button).length > 0) {
        var pbuttonID = "playButton" + Date.now();
        var pbutton = document.createElement("button");
        pbutton.type = 'button';
        pbutton.id = pbuttonID;
        pbutton.innerHTML = '녹음파일재생';
        pbutton.className = 'BUTTON';
        /* onClick 이벤트로 _startPlay(newAudio) 재생(Play) 함수 호출 */
        pbutton.onclick = function() {
            _startPlay(newAudio);
        };
        /* 녹음파일 재생(Play) 버튼을 화면에 표시합니다. */
        document.getElementById(audio_button).prepend(pbutton);
    }
 
    // 녹음파일 재생 일시정지(Pause) 버튼 생성
    if($("#"+audio_button).length > 0) {
        var pabuttonID = "pauseButton" + Date.now();
        var pabutton = document.createElement("button");
        pabutton.type = 'button';
        pabutton.id = pabuttonID;
        pabutton.innerHTML = '녹음파일 재생 일시정지';
        pabutton.className = 'BUTTON';
        /* onClick 이벤트로 _pausePlay(newAudio.id) 일시정지(Pause) 함수 호출 */
        pabutton.onclick = function() {
            _pausePlay(newAudio.id);
        };
        /* 녹음파일 재생 일시정지(Pause) 버튼을 화면에 표시합니다. */
        document.getElementById(audio_button).prepend(pabutton);
    }
 
    // 녹음파일 계속 재생(Resume) 버튼 생성
    if($("#"+audio_button).length > 0) {
        var rebuttonID = "resumeButton" + Date.now();
        var rebutton = document.createElement("button");
        rebutton.type = 'button';
        rebutton.id = rebuttonID;
        rebutton.innerHTML = '녹음파일 계속 재생';
        rebutton.className = 'BUTTON';
        /* onClick 이벤트로 _resumePlay(newAudio.id) 재생(Resume) 함수 호출 */
        rebutton.onclick = function() {
            _resumePlay(newAudio.id);
        };
        /* 녹음파일 계속 재생(Resume) 버튼을 화면에 표시합니다. */
        document.getElementById(audio_button).prepend(rebutton);
    }
 
    // 녹음 종료 버튼 클릭 후 mp3 서버 업로드 자동 실행 (사용 시 아래 주석을 제거합니다.)
    // uploadRecording(blobvalue);
}
 
// 녹음 파일 웹서버 업로드
function uploadRecording(blobData) { 
    /*
    음성 녹음 업로드 파일명을 지정합니다. 
    upload.php 파일 -> $_FILES['voice_record'] 파일 변수명과 일치해야 합니다. 
    업로드 파일명 변경 및 파일 확장자는 upload.php에서 직접 지정할 수 있습니다.
    */
    var upload_file_name = "voice_record";
 
    if(!blobData) {
        alert(recordingCheckErrorMsg);
    } else if(blobData) {
        console.log("Upload Recording");
        var formData = new FormData(); 
        formData.append(upload_file_name,blobData); 
        $.ajax({ 
            url : uploadUrl, 
            async:true,
            type: "POST"
            enctype: 'multipart/form-data',
            data : formData,
            processData: false,
            contentType: false,
            success: function(data, textStatus, jqXHR)
            {            
                console.log(data);
 
                /* 녹음 파일 업로드 처리 서버 스크립트 페이지에서 리턴 받은 값을 확인하여 결과를 처리합니다. 
                리턴 값은 추가 또는 변경 할 수 있습니다. 
                예제 upload.php 파일에서 결과 리턴 처리 방법을 확인하세요. */
                if($.trim(data) == 'upload_success') {
                    /* 리턴 값이 upload_success인 경우 : 업로드에 성공 했을 경우 결과를 처리합니다. 
                    원하는 처리 코드를 여기에 추가하세요. */
                    alert(uploadSuccessMessage);
                } else if($.trim(data) == 'upload_fail') {
                    /* 리턴 값이 upload_fail인 경우 : 업로드에 실패 했을 경우 결과를 처리합니다. 
                    원하는 처리 코드를 여기에 추가하세요. */
                    alert(uploadFailMessage);
                } else {
                    alert(uploadFailMessage);
                }
            }, 
            error: function (jqXHR, textStatus, errorThrown)
            {
                console.log(jqXHR);
            } 
        }); 
    }    
}
 
// 녹음 종료(stop) 후 자동 호출되는 이벤트 함수 (함수명 및 매개변수 변경 금지)
/*
- timer_id : example.html 소스 코드에서 타이머 표시 div id -> "id_timer1" 
- audio_player : example.html 소스 코드에서 플레이어 표시 div id -> "audio_player1" 
- audio_button : example.html 소스 코드에서 다운로드 및 업로드 버튼 표시 div id -> "audio_button1"
- audio_log : example.html 소스 코드에서 녹음 진행 로그 표시 div id -> "audio_log1"
*/
function eventStopRecording(timer_id,audio_player,audio_button,audio_log) {
    console.log('Stop Recording Event');
 
    // 녹음 종료(stop) 후 실행해야 할 코드가 있을 경우 여기에 추가하세요.
    console.log(timer_id);
    console.log(audio_player);
    console.log(audio_button);
    console.log(audio_log);
}
 
// 녹음 시작 시 마이크(미디어 디바이스) 사용 권한 획득 관련 등의 오류로 녹음에 실패하는 경우 자동 호출되는 이벤트 함수 (함수명 변경 금지) 
function _startRecording_error() {
    alert('녹음 시작 도중 오류가 발생하였습니다.');
}
 

 

 

녹음파일 웹서버 업로드 및 결과 리턴

- upload.php 예제 (파일 업로드 및 Database 저장 등의 처리는 고객사의 서버 환경에 따라 PHP,ASP,JSP 등의 언어로 직접 제작해주셔야 하는 부분입니다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
$size = $_FILES['voice_record']['size'];  // upload 파일 용량
$input = $_FILES['voice_record']['tmp_name']; // upload 임시 파일명 
 
// 업로드 될 실제 파일명 설정 (서버 업로드 폴더 경로 지정 포함, 파일 확장자는 mp3)
$destination = "./upload/voice_record_" . time() . ".mp3"
 
 
// 녹음 파일 서버 업로드
if(move_uploaded_file($input$destination)) {
    
    /* 업로드에 성공 했을 경우 upload_success 값을 리턴합니다. 리턴 값은 원하는 다른 값으로 변경 할 수 있습니다. 
    appRecorder.js -> uploadRecording 함수에서 넘겨받은 리턴 값으로 결과를 처리합니다. 
    여기에 필요한 경우 함께 POST로 넘겨받은 elements 및 녹음 파일명의 Database 저장 등의 처리를 함께 진행합니다. 
    리턴 값 출력 외에 다른 출력 코드는 사용하지 마세요. */
    echo 'upload_success';
 
else {
 
    /* 업로드에 실패 했을 경우 upload_fail 값을 리턴합니다. 리턴 값은 원하는 다른 값으로 변경 할 수 있습니다. 
    appRecorder.js -> uploadRecording 함수에서 넘겨받은 리턴 값으로 결과를 처리합니다. 
    리턴 값 출력 외에 다른 출력 코드는 사용하지 마세요. */
    echo 'upload_fail';
 
}
 
?>
 

 

 

라이선스 구매 신청 또는 문의하기

키위 보이스 레코더는 직접 운영 하시는 웹사이트에 음성녹음 기능을 서비스 할 수 있는 솔루션입니다.
보안서버인증서(SSL)가 적용되어 있는 도메인 URL로 접속(https://)해야 녹음 기능을 정상적으로 사용 할 수 있습니다.
구매 문의는 키위소프트 홈페이지 > 고객센터 > 고객문의에서 등록해주시면 문의에 대한 답변을 이메일로 보내드립니다.

 

https://www.kiwisoft.kr/

 

https://www.kiwisoft.kr/

 

www.kiwisoft.kr

 

 

 

+ Recent posts