Hi Dave,

Thanks for the info.
Finally I have decided to put all my audio data to SD card.
I can do this as suggested by you for a manual check.

*"adb push /path/on/workstation/video.mp4 /sdcard"*

This will work on my emulator.
If I want to do this for a real device than my code should first push all my
audio data in the user's SD card.

Can you please show me a way how to do this?

Is there any predefined folder like drawable/raw (Or some other like this)
which can directly put our data in sdcard instead of application's private
folder?





On Sun, Jan 18, 2009 at 1:34 AM, Dave Sparks <davidspa...@android.com>wrote:

>
> You can call android.os.Environment.getExternalStorageDirectory() to
> get the path to the external storage device. That will handle the case
> where recommended external store is no the SD card but some other
> device.
>
> If there is no external storage, you can try saving to your app's
> private data directory. Another alternative it to stream the media
> from a server, but this obviously introduces the complexity and cost
> of maintaining the service for your users.
>
>  All of the Android standard apps (camera, music, sound recorder) that
> create or use media files assume that the device will have external
> storage. In the end, you have to decide whether it's worth supporting
> users that don't have external storage.
>
> On Jan 17, 1:29 am, "Mahesh Vaghela" <mah...@indianic.com> wrote:
> > Dave,
> >
> > Thank you very much for replying soon. I understand how to push my mp4 in
> a
> > sd card and retrive the same.
> >
> > I am a bit curious to know limitation of doing this.
> >
> > 1. sd card may not be an part of all the Android devices.
> > 2. If it is the case, all users may not purchase it as an extra item
> > considering extra cost.
> > 3. If so, an application which reads only from  an sd card may not work
> > properly on all devices.
> >
> > Can you please guide me if there is an alternate way for storing the
> media
> > files? I know I can directly keep this in, with my apk under raw folder,
> but
> > this will made an application larger to download.
> >
> > The total disk size available for an android application is only 70 mb.
> So
> > one has to think for keeping his apk size to minimum.
> >
> > On Sat, Jan 17, 2009 at 12:57 PM, Dave Sparks <davidspa...@android.com
> >wrote:
> >
> >
> >
> >
> >
> > > adb push /path/on/workstation/video.mp4 /sdcard
> >
> > > In the code, use the SD card path for the setDataSource() call:
> >
> > > mMediaPlayer.setDataSource("/sdcard/video.mp4");
> >
> > > On Jan 16, 9:06 pm, "Mahesh Vaghela" <mah...@indianic.com> wrote:
> > > > Hi Dave,
> >
> > > > I like your line:
> > > > *
> > > > "As a first step, I would try pushing it to the SD card and playing
> it
> > > from
> > > > there."*
> >
> > > > Can you please show a way to push a mp4 or mp3 file in a sd card?
> >
> > > > On Sat, Jan 17, 2009 at 6:46 AM, Dave Sparks <
> davidspa...@android.com
> > > >wrote:
> >
> > > > > Can you be a bit more explicit when you say "nothing happens"?
> >
> > > > > Usually - no matter what kind of bug you might have - something
> > > > > happens, it's just not what you expected to happen. For example, do
> > > > > you have log output?
> >
> > > > > My guess is that you cannot use an MP4 as a raw resource because it
> > > > > gets compressed. I can't recall if we exclude it or not, but you
> > > > > normally don't want to bundle a resource like a video file into
> your
> > > > > resources. As a first step, I would try pushing it to the SD card
> and
> > > > > playing it from there.
> >
> > > > > On Jan 16, 7:49 am, srini amul <srinia...@yahoo.com> wrote:
> > > > > > Below is a step which i tried to play a mp4 file. But nothing
> > > happens.
> > > > > Could someone please help me out ?
> >
> > > > > > Steps which I tried:
> > > > > > *******************************
> > > > > > a) I added a SurfaceView element in main.xml
> > > > > > b) I uploaded a video.mp4 file in res/raw directory
> >
> > > > > > Below is my main.xml:
> > > > > > ----------------------
> > > > > > <?xml version="1.0" encoding="utf-8"?>
> > > > > > <LinearLayout xmlns:android="
> > >http://schemas.android.com/apk/res/android";
> > > > > >     android:orientation="vertical"
> > > > > >     android:layout_width="fill_parent"
> > > > > >     android:layout_height="fill_parent"
> >
> > > > > > <SurfaceView android:id="@+id/SurfaceView01"
> > > > > >     android:layout_width="wrap_content"
> > > > > android:layout_height="wrap_content"
> > > > > android:clickable="true"></SurfaceView>
> > > > > > </LinearLayout>
> >
> > > > > > Below is my application code:
> > > > > > ------------------------------------------
> >
> > > > > > package android.videoPlayer;
> >
> > > > > > import java.io.IOException;
> >
> > > > > > import android.app.Activity;
> > > > > > import android.media.AudioManager;
> > > > > > import android.media.MediaPlayer;
> > > > > > import android.media.MediaPlayer.OnBufferingUpdateListener;
> > > > > > import android.media.MediaPlayer.OnCompletionListener;
> > > > > > import android.media.MediaPlayer.OnPreparedListener;
> > > > > > import android.os.Bundle;
> > > > > > import android.util.Log;
> > > > > > import android.view.SurfaceHolder;
> > > > > > import android.view.SurfaceView;
> > > > > > import android.view.SurfaceHolder.Callback;
> >
> > > > > > public class videoPlayer extends Activity implements Callback,
> > > > > OnBufferingUpdateListener, OnPreparedListener, OnCompletionListener
> {
> > > > > > private static final String TAG = "VideoPlayerDemo";
> > > > > > private int mVideoWidth;
> > > > > > private int mVideoHeight;
> > > > > > private MediaPlayer mMediaPlayer;
> > > > > > private SurfaceView mPreview;
> > > > > > private SurfaceHolder holder;
> >
> > > > > > /** Called when the activity is first created. */
> > > > > > @Override
> > > > > > public void onCreate(Bundle savedInstanceState)
> > > > > > {
> > > > > > super.onCreate(savedInstanceState);
> > > > > > setContentView(R.layout.main);
> >
> > > > > > mPreview = (SurfaceView) findViewById(R.id.SurfaceView01);
> > > > > > holder = mPreview.getHolder();
> > > > > > holder.addCallback(this);
> > > > > > holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
> >
> > > > > > }
> >
> > > > > > private void playVideo() {
> >
> > > > > > // Create a new media player and set the listeners
> > > > > > mMediaPlayer = MediaPlayer.create(this, R.raw.mp4);
> > > > > > mMediaPlayer.setDisplay(holder);
> > > > > > try {
> > > > > > mMediaPlayer.prepare();} catch (IllegalStateException e) {
> >
> > > > > > // TODO Auto-generated catch block
> > > > > > e.printStackTrace();} catch (IOException e) {
> >
> > > > > > // TODO Auto-generated catch block
> > > > > > e.printStackTrace();}
> >
> > > > > > mMediaPlayer.setOnBufferingUpdateListener(this);
> > > > > > mMediaPlayer.setOnCompletionListener(this);
> > > > > > mMediaPlayer.setOnPreparedListener(this);
> > > > > > mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
> >
> > > > > > }
> >
> > > > > > public void onBufferingUpdate(MediaPlayer arg0, int percent) {
> > > > > > Log.d(TAG, "onBufferingUpdate percent:" + percent);
> >
> > > > > > }
> >
> > > > > > public void onCompletion(MediaPlayer arg0) {
> > > > > > Log.d(TAG, "onCompletion called");
> >
> > > > > > }
> >
> > > > > > public void onPrepared(MediaPlayer mediaplayer) {
> > > > > > Log.d(TAG, "onPrepared called");
> > > > > > mVideoWidth = mMediaPlayer.getVideoWidth();
> > > > > > mVideoHeight = mMediaPlayer.getVideoHeight();
> > > > > > if (mVideoWidth != 0 && mVideoHeight != 0) {
> > > > > > holder.setFixedSize(mVideoWidth, mVideoHeight);
> > > > > > mMediaPlayer.start();
> >
> > > > > > }
> > > > > > }
> >
> > > > > > public void surfaceChanged(SurfaceHolder surfaceholder, int i,
> int j,
> > > int
> > > > > k) {
> > > > > > Log.d(TAG, "surfaceChanged called");
> >
> > > > > > }
> >
> > > > > > public void surfaceDestroyed(SurfaceHolder surfaceholder) {
> > > > > > Log.d(TAG, "surfaceDestroyed called");
> >
> > > > > > }
> >
> > > > > > public void surfaceCreated(SurfaceHolder holder) {
> > > > > > // TODO Auto-generated method stub
> > > > > > Log.d(TAG, "surfaceCreated called");
> > > > > > playVideo();
> >
> > > > > > }
> >
> > > > > > @Override
> > > > > > protected void onDestroy() {
> > > > > > super.onDestroy();
> > > > > > // TODO Auto-generated method stub
> > > > > > if (mMediaPlayer != null) {
> > > > > > mMediaPlayer.release();
> > > > > > mMediaPlayer = null;
> >
> > > > > > }
> > > > > > }
> > > > > > }
> >
> > > > > >       Connect with friends all over the world. Get Yahoo! India
> > > Messenger
> > > > > athttp://in.messenger.yahoo.com/?wm=n/
> >
> > > > --
> > > > Mahesh Vaghelahttp://www.indianic.com
> >
> > --
> > Mahesh Vaghela
> >
> > http://www.indianic.com
> >
>


-- 
| Mahesh Vaghela | Sr. Developer - Dotnet
| IndiaNic Infotech Ltd.|
| 7th Floor, Gopal Palace, Nehrunagar Road, Ahmedabad-38006
***************************************************
| Phone No. (079 )( 26404209) | 1-(310)-909-8707
| Visit us at: www.indianic.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to android-beginners@googlegroups.com
To unsubscribe from this group, send email to
android-beginners-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to