2016-10-02 8 views
0

У меня есть клиент с написанными C# и сервером с написанной java. Я захватываю аудио и отправляю с сокетом сервер и сервер отправляю с веб-сокетом в браузер и хочу играть с браузером. Но когда я пытаюсь использовать браузер, вы можете сказать, что не удалось (в обещании) DOMException: Не удалось загрузить, потому что не было найдено ни одного поддерживаемого источника. Не могли бы вы мне помочь?Захват аудио с naudio и игра с javascript

private static void Recordwav() 
    { 
     waveInEvent = new WaveInEvent(); 
     int devicenum = 0; 
     for (int i = 0; i < WaveIn.DeviceCount; i++) 
     { 
      if (WaveIn.GetCapabilities(i).ProductName.Contains("icrophone")) 
       devicenum = i; 
     } 

     waveInEvent.DeviceNumber = devicenum; 
     waveInEvent.WaveFormat = new WaveFormat(44100, WaveIn.GetCapabilities(devicenum).Channels); 
     waveInEvent.DataAvailable += new EventHandler<WaveInEventArgs>(VoiceDataAvailable); 

     waveInEvent.StartRecording(); 
    } 

private static void VoiceDataAvailable(object sender, WaveInEventArgs e) 
    { 
     JObject jObject = new JObject(); 
     jObject["voice"] = Convert.ToBase64String(e.Buffer); 

     byte[] messageByte = Encoding.ASCII.GetBytes(jObject.ToString().Replace("\r\n", "") + "\n"); 
     socket.Send(messageByte); 
    } 

$scope.socket.onmessage = function (response) 
{ 
    var data = JSON.parse(response.data); 
    if(data.id == $scope.id) { 
     if(data.voice) { 
      var voice = data.voice; 
      var sound = new Audio("data:audio/wav;base64," + voice); 
      sound.play(); 
     } 
    } 
}; 

ответ

0

Вы просто отправляете необработанные образцы, а не правильно отформатированный WAV-файл. Вам нужно будет использовать WaveFileWriter для записи в MemoryStream (завернутый в IgnoreDisposeStream), распорядиться WaveFileWriter и затем получить доступ к базовому массиву байтов MemoryStream. Также вы не принимаете во внимание BytesRecorded.

Даже если вы получите эту работу, я подозреваю, что вы получите очень прерывистый звук, так как каждый WAV-файл будет несколько сотен мс, и они не обязательно будут играть отлично друг за другом.

 Смежные вопросы

  • Нет связанных вопросов^_^