2009-12-27 4 views
0

: 나는 PCM이 무엇인지 이해 exec {"Sound API only supports playing PCM wave files."} System.Exception {System.InvalidOperationException}SoundPlayer 및 Windows 7 wav 파일

을, 난 그냥 방법 중 하나를 모른다 : 1) 사운드 파일을 재생하고, 2) PCM이 아니며 재생하지 못하도록 선험적으로 결정하고, 파일 선택을 차단합니다. 그래서 그냥 특정 하나를 생략하는 데 사용됩니다 어떤 코덱 검사,

SoundPlayer player = new SoundPlayer(); 
player.SoundLocation = FileNameTextBox.Text; 

try 
{ 
    player.Play(); 
} 
catch (Exception exec) 
{ 
    MessageBox.Show("Sound could not be played: " + exec.ToString()); 
} 

답변

2

웨이브 파일 (심지어 GSM 코덱과) 다른 인코딩 할 수 있습니다 : 여기

내가 사용하고있는 코드입니다. AudioFormat 비트를 확인하십시오.

https://ccrma.stanford.edu/courses/422/projects/WaveFormat/

+0

감사 인이 플레이어를 사용합니다. 문제의 파일은 해당 필드에 0x55가 있습니다. 궁금한 점이 있으면 다음 코드를 입력하십시오 : if (dialog.ShowDialog() == DialogResult.OK) { BinaryReader br = new BinaryReader (File.Open (dialog.FileName, FileMode.Open)); br.BaseStream.Position = 20; Int16 aF = br.ReadInt16(); br.Close(); if ((aF! = 1) && (aF! = 2)) { MessageBox.Show ("잘못된 오디오 형식 ="+ audioFormat.ToString()); 반환; 형식 정보가있는 다른 웹 사이트 : http://www.sonicspot.com/guide/wavefiles.html 형식에 대한 자세한 내용이 있습니다. 다시 도움 주셔서 감사합니다. –

+0

그것이 당신을 도왔다 니 기쁩니다. – oldUser

+0

이 프로그램은 파일을 PCM으로 변환 할 수 있습니다. adware 허튼 소리의 선택을 해제하면 무료입니다 : http://www.nch.com.au/switch/ – Sire

-1

당신은 당신이 가지고있는 코드가 시스템 damager 마이크로 소프트 관리, 도움

+0

??? 이것을 표준 영어로 넣을 수 있습니까? –