0

HI i want to play a .3GP video file in android phone. i tried below code but it shows cant play video.so please tell me what i will do

This is my code

 public class VideoPlay extends Activity {

private String path ;
private VideoView mVideoView;

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.videoplay);
    path="http://www.boodang.com/api/videobb/101009_Pure.3gp";
    mVideoView = (VideoView) findViewById(R.id.video);

    if (path == "") {
        // Tell the user to provide a media file URL/path.
        Toast.makeText(
                VideoPlay.this,
                "Please edit VideoViewDemo Activity, and set path"
                        + " variable to your media file URL/path",
                Toast.LENGTH_LONG).show();

    } else {

        /*
         * Alternatively,for streaming media you can use
         * mVideoView.setVideoURI(Uri.parse(URLstring));
         */
        mVideoView.setVideoPath(path);
        mVideoView.setMediaController(new MediaController(this));
        mVideoView.requestFocus();

    }
}
}

The XML layout is

  <?xml version="1.0" encoding="utf-8"?>
  <FrameLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
  <VideoView
  android:id="@+id/video"
   android:layout_width="320px"
   android:layout_height="240px">
   </VideoView>
   </FrameLayout>
Ramakrishna
  • 4,066
  • 16
  • 48
  • 72

3 Answers3

2

Check the following code which is there in the Android SDK demo

package com.example.android.apis.media;

import com.example.android.apis.R;

import android.app.Activity;

import android.os.Bundle;

import android.widget.MediaController;

import android.widget.Toast;

import android.widget.VideoView;

public class VideoViewDemo extends Activity {

    /**
     * TODO: Set the path variable to a streaming video URL or a local media
     * file path.
     */
    private String path = "";
    private VideoView mVideoView;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.videoview);
        mVideoView = (VideoView) findViewById(R.id.surface_view);

        if (path == "") {
            // Tell the user to provide a media file URL/path.
            Toast.makeText(
                    VideoViewDemo.this,
                    "Please edit VideoViewDemo Activity, and set path"
                            + " variable to your media file URL/path",
                    Toast.LENGTH_LONG).show();

        } else {

            /*
             * Alternatively,for streaming media you can use
             * mVideoView.setVideoURI(Uri.parse(URLstring));
             */
            mVideoView.setVideoPath(path);
            mVideoView.setMediaController(new MediaController(this));
            mVideoView.requestFocus();

        }
    }
}

videoview.xml

<VideoView 
    android:id="@+id/surface_view" 
    android:layout_width="320px"
    android:layout_height="240px"
/>

Sankar Ganesh PMP
  • 11,927
  • 11
  • 57
  • 90
chiranjib
  • 5,288
  • 8
  • 53
  • 82
  • what exactly is the error ? also try with a different .3gp file – chiranjib Jan 27 '11 at 15:34
  • 01-27 21:04:32.952: ERROR/PlayerDriver(31): Command PLAYER_INIT completed with an error or info UNKNOWN PVMFStatus 01-27 21:04:32.952: ERROR/MediaPlayer(1559): error (200, -32) 01-27 21:04:32.952: ERROR/MediaPlayer(1559): Error (200,-32) – Ramakrishna Jan 27 '11 at 15:35
  • Android plays both 3gp & mp4 files, unless there is some frame rate / bit rate issue. Send me your code if you want , I'll check whether the code is an issue or your video file – chiranjib Jan 27 '11 at 15:43
  • i pasted my code in above plz check the above code and tell me solution – Ramakrishna Jan 27 '11 at 15:47
  • seems an issue with the url ... try with this sample url "http://daily3gp.com/vids/747.3gp" . It should work – chiranjib Jan 27 '11 at 15:54
  • Make sure you have added in your Android Manifest file the permission – chiranjib Jan 27 '11 at 16:00
  • can be issues with your connectivity ... do one thing .. just copy & paste both the urls in your internet browser & check whether there are being played or not .....if possible send me your project in my mail id .. I'll get back to you .. mail Id : remember_chiranjib@yahoo.co.in – chiranjib Jan 27 '11 at 16:07
0

This article provides code similar to your sample, though there are some differences, especially with video.start and your sample completely missing MediaController.show.

I suggest cleaning up your code a bit and try the suggestions found in the mentioned article. There's also some good feedback in the article discussions.

Peter Lillevold
  • 33,668
  • 7
  • 97
  • 131
0

As @Peter Lillevold suggests, you should try a reference implementation of a video player first. Here are some links:

Try these players with a known working video file, there is a link to some in this post. If you implement a player, and these reference videos work, but your .3gp video does not, then the problem may be that the video file itself is not encoded to standards.

Community
  • 1
  • 1
dave.c
  • 10,910
  • 5
  • 39
  • 62