mp3 파형정보 추출하기 > 그누보드5 플러그인

그누보드5 플러그인

그누보드는 다양한 기능을 추가하기 쉽습니다.

mp3 파형정보 추출하기 정보

mp3 파형정보 추출하기

첨부파일

eq256txt.zip (654.9K) 7회 다운로드 2021-05-28 22:53:39
30.txt (81.2K) 3회 다운로드 2021-05-28 23:00:04
테스트한 버전5.4.5.5
호환 가능 버전모두

본문

플러그인이라고 하기에는 그렇지만 이 게시판에 올려봅니다.

 

지금은 지나간 이야기지만... 플래시 액션 3.0 에서는 사운드의 파형정보를 추출하는 함수가 있지만 액션 2.0 에서는 swf 안에서 이퀄라이저 변수를 추출할 수단이 없습니다. 그래서 액션 2.0 에서 파형정보를 txt 파일로 추출하는 장치를 하나 만들고 그 txt 를 로드로 불러서 처리하려고 만든 것입니다. c# 으로 만들었습니다.

물론 자바 스크립트에서도 잘 먹습니다.

 

1. 가장 먼저 Net Framework 4.6.1 이상의 버전이 설치되어 있어야 합니다. 아마 대부분 다 그리 되어 있겠지요.

 

2. mp3 사운드는 반드시 CBR 44100 128 로 인코딩해 주세요. 안 그러면 프로그램의 약빨이 받지 않습니다.

예제는 30초짜리 mp3 파일입니다.

https://blog.kakaocdn.net/dn/qgR2f/btq5U53QEWX/6ruhraXMKtokkmWUxqQ9b1/tfile.mp3

 

3. 처음의 이미지처럼 옵션을 줍니다. 이퀄의 막대기를 30개를 만들고 싶으면 35개로 추출해 주세요.

총 256개의 정보를 뺄 수 있습니다. 저는 24개를 쓰려고 30개로 뺐습니다. 1/25 초는 그냥 기본으로 주십시오. 작업이 완료되면 mp3 과 동일폴더에 mp3 과 같은 이름의 txt 가 생성됩니다.

 

4. 생성된 txt 파일을 업로드 합니다. 처음에 만들 때 JSON 형태로 정보를 뺐어야 했는데 그냥 아무 생각없이...ㅋ

https://blog.kakaocdn.net/dn/dcgfqL/btq5XHBaGBn/Tpg4W5EH1Yf5QpaXc12xd1/tfile.txt

 

5. 이렇게 업로드한 파일을 php 나 ajax 로 본인의 입맛에 맞게 처리합니다.

저는 file_get_contents() 로 부른 후 제가 편한 방식으로 문자열을 치환하였습니다.

 


<script>
    barNum = 24;
    <?php
        $eq_url = "https://blog.kakaocdn.net/dn/dcgfqL/btq5XHBaGBn/Tpg4W5EH1Yf5QpaXc12xd1/tfile.txt";
        $eq_txt = file_get_contents($eq_url);
        $txt_split = explode("\n", $eq_txt);
        for ($i = 0; $i < count($txt_split) - 1; $i++) {
            $eq_cut = explode(" : ", $txt_split[$i]);
            echo "eq_".$i."=[".substr(str_replace(" ", ",", $eq_cut[1]), 0, -2)."];";
        }
    ?>
    function eqMode() {
        for (bar = 0; bar <= barNum; bar++) this['bar_' + bar].style.height = this['eq_' + Math.round(mp3Media.currentTime * 25)][bar] + 'px';
    }
    setInterval(eqMode, 40);
    function barMode() {
        for (bar = 0; bar <= barNum; bar++) document.write("<div id=bar_" + bar + " class=eqBar></div>");
    }
</script>
<style>
    .eqBar { width:10px; background:green; float:left; margin-right:2px; }
</style>
<audio id=mp3Media src=https://blog.kakaocdn.net/dn/qgR2f/btq5U53QEWX/6ruhraXMKtokkmWUxqQ9b1/tfile.mp3 controls loop></audio>
<div><script>barMode()</script></div>

 

이건 오디오파일의 currentTime 을 물고 늘어져 셋인터벌로 튕겨주는 방식입니다.

currentTime * 25 가 필요한 이유는 1/25 초마다 정보를 뺐기 때문이고 셋인터벌에서 40 이라는 숫자도 1000 나누기 25 하여 추출한 값입니다.

 

예제작이 미적으로 불량합니다.ㅋ 알아서 응용해 쓰세요.

얼마전까지 쪼물딱 거렸던 예제작 하나 같이 공유합니다. exe 파일로 만든 플래시입니다.

https://blog.kakaocdn.net/dn/b5nx8y/btq54UNdtLA/vm656nrHInUHlYG7wHp3i1/tfile.zip 

추천
3

댓글 전체

전체 393
그누보드5 플러그인 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIR SOFT