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
>> 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
-~----------~----~----~----~------~----~------~--~---