Yehonatan Duan
Yehonatan Duan

Reputation: 61

Can't play .m4a or .3gpp audio files in my website

Basically, I built an app in android that records my message and saves it as .m4a or .3gpp format. When I plays the records in my app it works fine, but when I'm trying to play it on my website it doesnt work...

Android(Java)

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(OUTPUT_FILE);
recorder.prepare();
recorder.start();

Website(HTML)

<audio controls="controls" preload="none">
     <source src="my_record.m4a" type="audio/mp4"/>
</audio>

P.S: When I tried to open some other m4a audio files(files that i found online), I succeded.

Upvotes: 2

Views: 448

Answers (1)

Praveen Attigeri
Praveen Attigeri

Reputation: 45

The audio tag is quite sensitive about this. Anything above 128mbps it will not play. A lot of encoders automatically choose the highest quality bit rate (usually around 320mbps) and the audio tag won't play them. Sample rate should be 44100hz.

the sampling rate supported by AAC audio coding standard ranges from 8 to 96 kHz, the sampling rate supported by AMRNB is 8kHz, and the sampling rate supported by AMRWB is 16kHz.

Hence change Audioencoder to AAC in your code

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

to

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

and then set filename extension to .mp3

Hope this works for you.:)

Upvotes: 2

Related Questions