Hi, My pleasure..
On Tue, Oct 16, 2012 at 3:09 PM, Tamil Arasi <arasi...@gmail.com> wrote: > Hi rahul, > > > > Thank u for ur code. this code is very useful to me . > > > On Mon, Oct 15, 2012 at 2:54 PM, rahul B <tech.rah...@gmail.com> wrote: > >> Here I am posting some sample which works fine with me.. >> >> >> package com.audiotrack; >> >> import java.io.File; >> import java.io.FileInputStream; >> import java.io.IOException; >> import java.nio.BufferUnderflowException; >> >> import android.app.Activity; >> import android.media.AudioFormat; >> import android.media.AudioManager; >> import android.media.AudioTrack; >> import android.os.Bundle; >> import android.util.Log; >> import android.view.View; >> import android.view.View.OnClickListener; >> import android.widget.Button; >> >> public class AudioPlayBackActivity extends Activity { >> >> /** Called when the activity is first created. */ >> @Override >> public void onCreate(Bundle savedInstanceState) { >> super.onCreate(savedInstanceState); >> setContentView(R.layout.main); >> >> Button play = (Button) findViewById(R.id.button1); >> play.setOnClickListener(new OnClickListener() { >> >> // @Override >> public void onClick(View v) { >> >> String filePath = "/sdcard/voice8K16bitmono_sir.pcm"; >> if (filePath == null) >> return; >> >> // Reading the file.. >> byte[] byteData = null; >> File file = null; >> file = new File(filePath); >> byteData = new byte[(int) file.length()]; >> System.out.println("bytedata--" + byteData); >> FileInputStream in = null; >> >> try { >> >> in = new FileInputStream(file); >> in.read(byteData); >> System.out.println("READING CARD-- " + in + "--BYTE Data--" >> + byteData + byteData.length); >> in.close(); >> } catch (IOException e) { >> e.printStackTrace(); >> } catch (BufferUnderflowException e) { >> e.printStackTrace(); >> } >> >> int dataSize = byteData.length / 2; >> short[] shorts = byte2short(byteData); >> int BufferElements2Play = 1024; // want to play 2048 (2K) since >> // 2 bytes we use only 1024 >> int BytesPerElement = 2; // 2 bytes in 16bit format >> >> int intSize = android.media.AudioTrack.getMinBufferSize(8000, >> AudioFormat.CHANNEL_OUT_MONO, >> AudioFormat.ENCODING_PCM_16BIT); >> >> System.out.println("buffersize -- " + intSize); >> AudioTrack at = new AudioTrack(AudioManager.STREAM_VOICE_CALL, >> 8000, AudioFormat.CHANNEL_OUT_MONO, >> AudioFormat.ENCODING_PCM_16BIT, BufferElements2Play >> * BytesPerElement, AudioTrack.MODE_STREAM); >> >> if (at != null) { >> >> int shortLength = shorts.length; >> int shortLengthOffset2Play = 0; >> >> System.out.println("SHORTS Data" + shortLength); >> // Write the byte array to the track >> at.write(shorts, 0, BufferElements2Play); >> at.play(); >> >> shortLengthOffset2Play += BufferElements2Play; // Wrote 512 >> // ushorts >> >> while (shortLengthOffset2Play < shortLength) { >> try { >> Thread.sleep(50); >> } catch (InterruptedException e) { >> >> e.printStackTrace(); >> } >> // Waiting, Simulating your condition of receiving data >> // from server... >> at.write(shorts, shortLengthOffset2Play, >> BufferElements2Play); >> // in your case it will 0, numberofShorts(2048) >> shortLengthOffset2Play += BufferElements2Play; >> System.out.println("shortlengthoffset --- " >> + shortLengthOffset2Play); >> // Wrote yet another 512 shorts >> } >> } else >> Log.d("Audio", "audio track is not initialised "); >> } >> >> private short[] byte2short(byte[] byteD) { >> int byteArrsize = byteD.length / 2; >> short[] shorts = new short[byteArrsize]; >> for (int i = 0; i < byteArrsize; i++) { >> shorts[i] = (short) (byteD[i * 2] + (byteD[(i * 2) + 1] << 8)); >> } >> return shorts; >> } >> }); >> } >> } >> >> On Mon, Oct 15, 2012 at 12:36 PM, Asheesh Arya >> <asheesharya...@gmail.com>wrote: >> >>> please refer this link >>> http://www.benmccann.com/dev-blog/android-audio-recording-tutorial/ >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Android Developers" group. >>> To post to this group, send email to android-developers@googlegroups.com >>> To unsubscribe from this group, send email to >>> android-developers+unsubscr...@googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/group/android-developers?hl=en >>> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to android-developers@googlegroups.com >> To unsubscribe from this group, send email to >> android-developers+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en >> > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en