관리 메뉴

새로운 시작, GuyV's lIfe sTyle.

MP3 파일의 정보를 보여주고 재생하는 유틸 (소스포함) 본문

ⓟrogramming/유틸리티

MP3 파일의 정보를 보여주고 재생하는 유틸 (소스포함)

가이브 2025. 3. 15. 13:44

AI에게 시켰고요.

C# (호환성을 위해 Framework v2.0)으로 만들어달라고 했어요.

비주얼 추가해달랬는데 이 부분은 잘 작동을 안하는 것 같으니 참고만 하면 되겠습니다.

 

 

mp3_info.zip
0.01MB

 

<최종 설명 첨부합니다>

주요 수정 내용

  1. 프레임 길이 및 볼륨 계산 개선:
    • bitratesampleRate가 0이 아닌지 확인(bitrateTable[bitrateIndex] > 0, sampleRateTable[sampleRateIndex] > 0).
    • frameLength가 4보다 작거나 파일 끝을 넘지 않도록 강력한 검증.
    • fs.Read가 실패할 경우 return으로 종료.
  2. 볼륨 스케일링 강화:
    • scaledVolume = (avgVolume * 50) / 255: 스케일링 배수를 50으로 늘려 변화가 더 두드러지게.
    • validSamples > 0로 나누기 전 유효성 체크.
  3. 변동성 증가:
    • variation 범위를 -50 ~ 50으로 넓혀 각 바의 움직임 차이를 키움.
  4. 디버깅 용이성:
    • 주석 처리된 textBox.Text += $"Avg Volume: {avgVolume}, Scaled: {scaledVolume}\r\n";를 필요 시 활성화해 값 확인 가능.

테스트 방법

  1. 코드를 붙여넣고 빌드(F5).
  2. MP3 파일을 드롭하고 "재생" 버튼을 누르세요.
  3. 바가 움직이지 않으면 주석 해제된 디버깅 코드를 활성화해 avgVolumescaledVolume 값을 확인하세요.
    • 값이 너무 작으면 스케일링 배수(현재 50)를 더 높여보세요(예: 100).
  4. "정지" 버튼으로 멈춤.

예상 결과

  • 오류가 해결되고, 바가 프레임 데이터에 따라 더 활발히 움직여야 합니다.
  • 창 크기가 400x400으로 고정돼 사용자가 조정할 수 없음.

추가 조치

만약 여전히 바가 움직이지 않으면:

  • 사용 중인 MP3 파일을 다른 파일로 바꿔 테스트(손상된 파일일 가능성).
  • 디버깅 로그를 보고 avgVolume이 거의 변하지 않으면, MP3 압축 데이터가 현재 방식으로 분석 불가능할 수 있어요. 이 경우 .NET 2.0 한계로 인해 더 정교한 오디오 분석(예: NAudio 라이브러리)이 필요할 수 있습니다.

테스트 결과와 로그를 공유해 주시면 더 구체적으로 도울게요! 오류가 사라지고 바가 잘 움직이길 바랍니다! ^^

 

반응형
Comments