Yea you could do it that way but its not going to stop where you want it unless you use a b repeate.
On 12/19/2008, Dave Sparks <[email protected]> wrote: > > As a workaround, you can use seekTo followed by start to start > playback partly into a file, and then call getCurrentPosition > repeatedly until you get to the point where you want to stop and then > call stop or pause. It's not going to be very precise. > > On Dec 19, 12:27 pm, Dave Sparks <[email protected]> wrote: >> No there is no way to play a segment of a media file. >> >> On Dec 19, 9:52 am, Kenneth Loafman <[email protected]> wrote: >> >> > Is there a way to set the length of the segment to play like >> > setDataSource() has? I'm not seeing it. >> >> > ...Thanks, >> > ...Ken >> >> > On Fri, 19 Dec 2008 09:03:30 -0800 (PST), Dave Sparks >> >> > <[email protected]> wrote: >> >> > >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 <[email protected]> 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 > > > -- Xavier A. Mathews Student/Browser Specialist/Developer/Web-Master Client Based Tech Support Specialist Hazel Crest Illinois [email protected]¥[email protected]¥[email protected] "Fear of a name, only increases fear of the thing itself." --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

