Dagger, you need to look at the log (logcat view in eclipse, or adb logcat)
to see the exact exception being thrown that crashes your app. with this
info, figuring out the issue will be trivial.
jason
On Sun, Nov 2, 2008 at 9:32 AM, Dagger <[EMAIL PROTECTED]> wrote:
>
> someone reply please
>
> On Nov 2, 9:04 pm, "Kipling Inscore" <[EMAIL PROTECTED]> wrote:
> > On Sun, Nov 2, 2008 at 7:53 AM, Dagger <[EMAIL PROTECTED]> wrote:
> >
> > > hey developers I need help with this problem
> >
> > Posting a message like the above usually doesn't help.
> >
> >
> >
> > > On Nov 2, 8:45 pm, Dagger <[EMAIL PROTECTED]> wrote:
> > >> I am using the 0.9 version of android SDK
> >
> > Why are you using 0.9? Use 1.0.
> >
> > >> Encountering the error The application videoplayer has stopped
> > >> unexpectedly please try again.
> >
> > That's what almost every application will give you if it crashes.
> > Use adb to get a log. 'adb logcat'.
> >
> > >> 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
> >
> > ...
> >
> > read more ยป
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---