Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I get raw PCM data from MediaPlayer or SoundPool?

i use eclipse with android sdk 4.0.3 api lvl 15 to create a basic music player application.

I read and found that there are two main classes to play sounds. MediaPlayer and SoundPool. SoundPool has more flexibility regarding sound priority and rate of played sound.

I would also like to draw a visualization graph of the audio.

is there a way to get raw PCM data from the loaded audio asset in order for me to be able to draw the graph ?

is there a way to manipulate the raw data before it's being played on realtime? for example if i want to add real time effects. is that possible with these classes ? or any other ?

the main reason that I want to use one of these classes because they can read audio formats without me needing to read the file and parse the formats to raw PCM data myself.

any information regarding the issue would be greatly appreciated.

thanks!

Kfir

like image 975
ufk Avatar asked Jan 17 '23 04:01

ufk


2 Answers

I have been going through one open source project .

in that they have loaded PCM of audio file .

here is the https://github.com/google/ringdroid

hope its help you draw PCM from audio file .

like image 197
dharam Avatar answered Jan 30 '23 09:01

dharam


Hey have a look at AudioTrack for reading in bytes. You can manipulate the byte array of sound before you actually play it back. http://developer.android.com/reference/android/media/AudioTrack.html

Audiotrack is definately more easy to control, since you get access to do the raw data, but you gotta do the work yourself, instead of just loading the class (MediaPlayer) with an asset file.

Also look at this example for reading assets into a byte array http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/content/ReadAsset.html

I'm not sure if you can use the byte arrays for drawing a graph?

Hope this helps you ;-) The audiopart of Android really isn't that well-documented I'm afraid and hasn't been since day one ;\

like image 20
Darwind Avatar answered Jan 30 '23 07:01

Darwind