hey developers I need help with this problem

On Nov 2, 8:45 pm, Dagger <[EMAIL PROTECTED]> wrote:
> I am using the 0.9 version of android SDK
> Encountering the error The application videoplayer has stopped
> unexpectedly please try again.
> This is the code which I have
> Videoplayer.java
>
> package com.android.VideoPlayer;
>
> import java.io.File;
> import java.io.FileOutputStream;
> import java.io.IOException;
> import java.io.InputStream;
> import java.net.URL;
> import java.net.URLConnection;
>
> import android.app.Activity;
> import android.graphics.PixelFormat;
> import android.media.MediaPlayer;
> import android.media.MediaPlayer.OnBufferingUpdateListener;
> import android.media.MediaPlayer.OnCompletionListener;
> import android.media.MediaPlayer.OnErrorListener;
> import android.os.Bundle;
> import android.util.Log;
> import android.view.SurfaceHolder;
> import android.view.SurfaceView;
> import android.view.View;
> import android.webkit.URLUtil;
> import android.widget.EditText;
> import android.widget.ImageButton;
>
> public class VideoPlayer extends Activity implements OnErrorListener,
>         OnBufferingUpdateListener, OnCompletionListener,
>         MediaPlayer.OnPreparedListener, SurfaceHolder.Callback {
>     private static final String TAG = "VideoPlayer";
>
>     private MediaPlayer mp;
>     private SurfaceView mPreview;
>     private EditText mPath;
>     private SurfaceHolder holder;
>     private ImageButton mPlay;
>     private ImageButton mPause;
>     private ImageButton mReset;
>     private ImageButton mStop;
>     private String current;
>
>     /**
>      * Called when the activity is first created.
>      */
>     public void onCreate(Bundle icicle) {
>         super.onCreate(icicle);
>
>         setContentView(R.layout.main);
>
>         // Set up the play/pause/reset/stop buttons
>         mPreview = (SurfaceView) findViewById(R.id.surface);
>         mPath = (EditText) findViewById(R.id.path);
>         mPlay = (ImageButton) findViewById(R.id.play);
>         mPause = (ImageButton) findViewById(R.id.pause);
>         mReset = (ImageButton) findViewById(R.id.reset);
>         mStop = (ImageButton) findViewById(R.id.stop);
>
>         mPlay.setOnClickListener(new View.OnClickListener() {
>             public void onClick(View view) {
>                 playVideo();
>             }
>         });
>         mPause.setOnClickListener(new View.OnClickListener() {
>             public void onClick(View view) {
>                 if (mp != null) {
>                     mp.pause();
>                 }
>             }
>         });
>         mReset.setOnClickListener(new View.OnClickListener() {
>             public void onClick(View view) {
>                 if (mp != null) {
>                     mp.seekTo(0);
>                 }
>             }
>         });
>         mStop.setOnClickListener(new View.OnClickListener() {
>             public void onClick(View view) {
>                 if (mp != null) {
>                     mp.stop();
>                     mp.release();
>                 }
>             }
>         });
>
>         // Set the transparency
>         getWindow().setFormat(PixelFormat.TRANSPARENT);
>
>         // Set a size for the video screen
>         holder = mPreview.getHolder();
>         holder.addCallback(this);
>         holder.setFixedSize(400, 300);
>     }
>
>     private void playVideo() {
>         try {
>             final String path = mPath.getText().toString();
>             Log.v(TAG, "path: " + path);
>
>             // If the path has not changed, just start the media
> player
>             if (path.equals(current) && mp != null) {
>                 mp.start();
>                 return;
>             }
>             current = path;
>
>             // Create a new media player and set the listeners
>             mp = new MediaPlayer();
>             mp.setOnErrorListener(this);
>             mp.setOnBufferingUpdateListener(this);
>             mp.setOnCompletionListener(this);
>             mp.setOnPreparedListener(this);
>             mp.setAudioStreamType(2);
>
>             // Set the surface for the video output
>             mp.setDisplay((SurfaceHolder)
> mPreview.getHolder().getSurface());
>
>             // Set the data source in another thread
>             // which actually downloads the mp3 or videos
>             // to a temporary location
>             Runnable r = new Runnable() {
>                 public void run() {
>                     try {
>                         setDataSource(path);
>                     } catch (IOException e) {
>                         Log.e(TAG, e.getMessage(), e);
>                     }
>                     try {
>                                                 mp.prepare();
>                                         } catch (IllegalStateException e) {
>                                                 // TODO Auto-generated catch 
> block
>                                                 e.printStackTrace();
>                                         } catch (IOException e) {
>                                                 // TODO Auto-generated catch 
> block
>                                                 e.printStackTrace();
>                                         }
>                     Log.v(TAG, "Duration:  ===>" + mp.getDuration());
>                     mp.start();
>                 }
>             };
>             new Thread(r).start();
>         } catch (Exception e) {
>             Log.e(TAG, "error: " + e.getMessage(), e);
>             if (mp != null) {
>                 try{mp.stop();}
>                 catch(IllegalStateException f){}
>                 mp.release();
>             }
>         }
>     }
>
>     /**
>      * If the user has specified a local url, then we download the
>      * url stream to a temporary location and then call the
> setDataSource
>      * for that local file
>      *
>      * @param path
>      * @throws IOException
>      */
>     private void setDataSource(String path) throws IOException {
>         if (!URLUtil.isNetworkUrl(path)) {
>             mp.setDataSource(path);
>         } else {
>             URL url = new URL(path);
>             URLConnection cn = url.openConnection();
>             cn.connect();
>             InputStream stream = cn.getInputStream();
>             if (stream == null)
>                 throw new RuntimeException("stream is null");
>             File temp = File.createTempFile("mediaplayertmp", "dat");
>             String tempPath = temp.getAbsolutePath();
>             FileOutputStream out = new FileOutputStream(temp);
>             byte buf[] = new byte[128];
>             do {
>                 int numread = stream.read(buf);
>                 if (numread <= 0)
>                     break;
>                 out.write(buf, 0, numread);
>             } while (true);
>             mp.setDataSource(tempPath);
>             try {
>                 stream.close();
>             }
>             catch (IOException ex) {
>                 Log.e(TAG, "error: " + ex.getMessage(), ex);
>             }
>         }
>     }
>
>     public boolean onError(MediaPlayer mediaPlayer, int what, int
> extra) {
>         Log.e(TAG, "onError--->   what:" + what + "    extra:" +
> extra);
>         if (mediaPlayer != null) {
>             mediaPlayer.stop();
>             mediaPlayer.release();
>         }
>                 return false;
>     }
>
>     public void onBufferingUpdate(MediaPlayer arg0, int percent) {
>         Log.d(TAG, "onBufferingUpdate called --->   percent:" +
> percent);
>     }
>
>     public void onCompletion(MediaPlayer arg0) {
>         Log.d(TAG, "onCompletion called");
>     }
>
>     public void onPrepared(MediaPlayer mediaplayer) {
>         Log.d(TAG, "onPrepared called");
>     }
>
>     public void surfaceCreated(SurfaceHolder surfaceholder) {
>         Log.d(TAG, "surfaceCreated called");
>         return;
>     }
>
>     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");
>     }
>
> }
>
> Manifest.xml is this
>
> <?xml version="1.0" encoding="utf-8"?>
> <manifest xmlns:android="http://schemas.android.com/apk/res/android";
> package="com.android.VideoPlayer" >
>     <application android:icon="@drawable/icon" android:label="@string/
> app_name">
>     <!-- <uses-library android:name="android.media" />
>     <uses-library android:name="android.view" />
>     <uses-library android:name="android.widget" />-->
>            <activity android:name=".VideoPlayer"
> android:label="@string/app_name">
>             <intent-filter>
>                 <action android:name="android.intent.action.MAIN" />
>                 <category
> android:name="android.intent.category.LAUNCHER" />
>             </intent-filter>
>         </activity>
>     </application>
> </manifest>
>
> 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"
>     >
> <TextView
>     android:layout_width="fill_parent"
>     android:layout_height="wrap_content"
>     android:text="@string/hello"
> />
> <SurfaceView
>     android:id="@+id/surface"
>  />
>  <EditText
>     android:id="@+id/path"
>     />
>  <ImageButton
>     android:id="@+id/play"
>  />
>   <ImageButton
>     android:id="@+id/pause"
>   />
>   <ImageButton
>     android:id="@+id/reset"
>   />
>    <ImageButton
>     android:id="@+id/stop"
>     />
>
> </LinearLayout>
>
> Please help me out I am new to android.
--~--~---------~--~----~------------~-------~--~----~
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