Hi,

I have written a small app which plays video files. Some files are
playing nicely.

but some files's view is not visible, but I am able to listen the
audio.

I dont know why?

Can any one please suggest me where I am doing the wrong?

here is my code:

package bluemediaLab.vodcast1;



import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;


public class MediaPlayerDemo_Video extends Activity implements
        MediaPlayer.OnBufferingUpdateListener,
MediaPlayer.OnCompletionListener,
        MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {

    private static final String TAG = "MediaPlayerDemo";
    private int mVideoWidth;
    private int mVideoHeight;
    private MediaPlayer mMediaPlayer;
    private SurfaceView mPreview;
    private SurfaceHolder holder;
    private String path;
    private Bundle extras;
    private static final String MEDIA = "media";
    private static final int LOCAL_AUDIO = 1;
    private static final int STREAM_AUDIO = 2;
    private static final int RESOURCES_AUDIO = 3;
    private static final int LOCAL_VIDEO = 4;
    private static final int STREAM_VIDEO = 5;

    /**
     *
     * Called when the activity is first created.
     */
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.mediaplayer_2);
        mPreview = (SurfaceView) findViewById(R.id.surface);
        holder = mPreview.getHolder();
        holder.addCallback(this);
        holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        extras = getIntent().getExtras();

    }

    private void playVideo(Integer Media) {
        try {

            switch (Media) {
                case LOCAL_VIDEO:
                    /*
                     * TODO: Set the path variable to a local media
file path.
                     */
                    path = "";
                    if (path == "") {
                        // Tell the user to provide a media file URL.
                        Toast
                                .makeText(
                                        MediaPlayerDemo_Video.this,
                                        "Please edit
MediaPlayerDemo_Video Activity, "
                                                + "and set the path
variable to your media file path."
                                                + " Your media file
must be stored on sdcard.",
                                        Toast.LENGTH_LONG).show();

                    }
                    break;
                case STREAM_VIDEO:
                    /*
                     * TODO: Set path variable to progressive
streamable mp4 or
                     * 3gpp format URL. Http protocol should be used.
                     * Mediaplayer can only play "progressive
streamable
                     * contents" which basically means: 1. the movie
atom has to
                     * precede all the media data atoms. 2. The clip
has to be
                     * reasonably interleaved.
                     *
                     */
                   // path = "http://feeds.nos.nl/~r/journaal/
~5/531307337/NOS_Journaal_VODcast_std_4-2-2009_7_00_53.mp4";
                    path = extras.getString("MediaFileName");
                    if (path == "") {
                        // Tell the user to provide a media file URL.
                        Toast
                                .makeText(
                                        MediaPlayerDemo_Video.this,
                                        "Please edit
MediaPlayerDemo_Video Activity,"
                                                + " and set the path
variable to your media file URL.",
                                        Toast.LENGTH_LONG).show();

                    }

                    break;


            }

            // Create a new media player and set the listeners
            mMediaPlayer = new MediaPlayer();
            mMediaPlayer.setDataSource(path);
            mMediaPlayer.setDisplay(holder);
            //mMediaPlayer.prepare();
            mMediaPlayer.prepareAsync();// added by manoj on 28-2-9,
its suggestion from the media api, for streams.
            mMediaPlayer.setOnBufferingUpdateListener(this);
            //mMediaPlayer.setOnCompletionListener(this);//commented
by manoj.
            mMediaPlayer.setOnPreparedListener(this);
            //mMediaPlayer.setAudioStreamType
(AudioManager.STREAM_MUSIC);


        } catch (Exception e) {
            Log.e(TAG, "error: " + e.getMessage(), e);
        }
    }

    public void onBufferingUpdate(MediaPlayer arg0, int percent) {
        Log.d(TAG, "onBufferingUpdate percent:" + percent);

        if(arg0.isPlaying())
        {
                Log.i("isPlaying() is ","true");
        }
        else
        {
                Log.i("isPlaying() is ","false");


        }

        if(percent == 100)
        {
                Log.i("onBufferingUpdate"," -> NOW SET TO ONCOMPLETION
LISTENER!!!");
                mMediaPlayer.setOnCompletionListener(this);

        }

    }

    public void onCompletion(MediaPlayer arg0) {
        Log.d(TAG, "onCompletion called");
        finish();
    }

    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.setScreenOnWhilePlaying(true); //?? WHY ???
            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(extras.getInt(MEDIA));


    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // TODO Auto-generated method stub
        if (mMediaPlayer != null) {

            mMediaPlayer.release();
            mMediaPlayer = null;
        }

    }

}

Thanks,
Manoj.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to