setDataSource() with offset is for playing an embedded media file. In other words, there must be a valid WAVE header at the specified offset. An example use case is a resource file that contains many WAVE files with a table of contents at the beginning.
You can call seekTo() to start playback at time offset. On Dec 19, 8:28 am, Kenneth Loafman <kenneth.loaf...@gmail.com> wrote: > This code segment: > > > > > path = "/data/noise.wav"; > > file = new File(path); > > > tx.setText("Prepping audio..."); > > Log.i(TAG, "Prepping audio"); > > > for (int i = 0; i < nPlay; ++i) { > > myPlayers[i] = new MediaPlayer(); > > randFile[i] = new RandomAccessFile(file, "r"); > > myPlayers[i].setAudioStreamType(AudioManager.STREAM_MUSIC); > > myPlayers[i].setDataSource(randFile[i].getFD(), > > i * segSize, > > segSize); > > Log.i(TAG, "Prepping: " + i); > > myPlayers[i].prepare(); > > } > > produces this log: > > > > >12-19 10:05:38.369: INFO/SilentSpeech(3427): Prepping audio > >12-19 10:05:38.409: INFO/SilentSpeech(3427): Prepping: 0 > >12-19 10:05:38.449: INFO/SilentSpeech(3427): Prepping: 1 > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): error: Prepare failed.: > >status=0xFFFFFFFC > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): java.io.IOException: Prepare > >failed.: status=0xFFFFFFFC > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.media.MediaPlayer.prepare(Native Method) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >com.android.silentspeech.SSActivity.playAudio(SSActivity.java:55) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >com.android.silentspeech.SSActivity.onCreate(SSActivity.java:38) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1122) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2103) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2156) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.app.ActivityThread.access$1800(ActivityThread.java:112) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.app.ActivityThread$H.handleMessage(ActivityThread.java:1580) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.os.Handler.dispatchMessage(Handler.java:88) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.os.Looper.loop(Looper.java:123) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >android.app.ActivityThread.main(ActivityThread.java:3742) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >java.lang.reflect.Method.invokeNative(Native Method) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >java.lang.reflect.Method.invoke(Method.java:515) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497) > >12-19 10:05:38.469: ERROR/SilentSpeech(3427): at > >dalvik.system.NativeStart.main(Native Method) > > If I replace "i * segSize" with "0" to always start at the front, it > works. Strange. > > Does this mean that: > 1) setDataSource() does not work with offset? -or- > 2) do I need to put a file header at each offset? > > If the answer is 2, is there an option to take raw input? > > ...Thanks, > ...Ken --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---