2014-01-30 4 views
1

Я использовал ниже код для преобразования аудио файлов в WAV формат с 8000 Гц, 16 бит и моно канал используя JAVEпреобразования аудио файлов в Java

File source = new File("file.mp3"); 
    File target = new File("soundfile\\file2.wav"); 
    AudioAttributes audio = new AudioAttributes(); 
    audio.setCodec("pcm_s16le"); 
    audio.setBitRate(new Integer(16)); 
    audio.setChannels(new Integer(1)); 
    audio.setSamplingRate(new Integer(8000)); 
    EncodingAttributes attrs = new EncodingAttributes(); 
    attrs.setFormat("wav"); 
    attrs.setAudioAttributes(audio); 
    Encoder encoder = new Encoder(); 
    try { 
     encoder.encode(source, target, attrs); 
     System.out.println("Successfully created"); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (InputFormatException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (EncoderException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

Это преобразование, но этот файл не играть в медиаплеере , может ли кто-нибудь помочь мне обнаружить проблему в моем коде.

+0

Тег моно для проекта Mono. Пожалуйста, не злоупотребляйте им. –

ответ

0

Я просто попробовал свой код со случайным mp3, и получившийся wav играл отлично.

Это выстрел в темноте, но я столкнулся с сценарием, в котором два канала исходного mp3 взаимно противоположны друг другу. Когда это преобразуется в один канал, они отменяют друг друга, что приводит к молчанию wav.

Вы можете проверить это быстро, установив преобразование держать 2 канала

audio.setChannels(new Integer(2)); 
Смежные вопросы