Also, just to follow-up on this more, I installed lighttpd locally on
the same computer as the emulator.  I also made sure to add the 3GP
video mime-type.

This way, I could try using "http://10.0.2.2/dailytest.3gp"; as my test
URL from the emulator, which should bypass even the emulator's bridge
NAT.

Still came back with the same errors.  :(

Interestingly, the player only made a HEAD request this time, and
didn't begin streaming the data with a GET request.  Here is the HEAD
details from the lighttpd server, showing the correct mimetype:

HTTP/1.1 200 OK
Content-Type: video/3gpp
Accept-Ranges: bytes
ETag: "60758872"
Last-Modified: Tue, 19 Aug 2008 04:55:39 GMT
Content-Length: 229635
Date: Tue, 19 Aug 2008 05:06:40 GMT
Server: lighttpd/1.4.19


j


On Aug 18, 10:51 pm, Jeffrey Sharkey <[EMAIL PROTECTED]>
wrote:
> I'm using code almost verbatim out of the VideoViewDemo example.
> Below is the exact code to be sure, and I've tried with both
> setVideoPath() and setVideoURI().
>
> Looking at wireshark during this process, it seems that the both
> YouTube and my server are spewing back plenty of video data, but the
> VideoView somehow never gets it, or doesn't know what to do with it.
> With RTSP, it takes about 5-10 seconds before a "Cannot play video:
> Sorry, this video cannot be played." error message appears, but with
> the HTTP link it appears almost instantly.
>
> For Internet traffic, I'm behind a NAT.  However, for the HTTP
> example, I've also tried a local Apache server that doesn't go through
> a NAT.  (Unless the emulator itself counts as another NAT.)
>
> === VideoViewDemo.java ===
>
> import android.app.Activity;
> import android.graphics.PixelFormat;
> import android.net.Uri;
> import android.os.Bundle;
> import android.util.Log;
> import android.widget.MediaController;
> import android.widget.Toast;
> import android.widget.VideoView;
>
> public class VideoViewDemo extends Activity {
>
>     private VideoView mVideoView;
>
>     private String path = "http://www.jsharkey.org/downloads/dailytest.
> 3gp";
>     //private String path = "rtsp://ehug.rtsp-youtube.l.google.com/
> CkELENy73wIaOAnUq-
> btqFy58BMYDSANFEIJbXYtZ29vZ2xlSARSB2RldGFpbHNaB2RldGFpbHNgz9u3rfm40Np6DA==/
> 0/0/0/video.3gp";
>
>     @Override
>     public void onCreate(Bundle icicle) {
>         super.onCreate(icicle);
>         setContentView(R.layout.videoview);
>         mVideoView = (VideoView) findViewById(R.id.surface_view);
>
>         //mVideoView.setVideoPath(path);
>         mVideoView.setVideoURI(Uri.parse(path));
>         mVideoView.setMediaController(new MediaController(this));
>         mVideoView.requestFocus();
>
>     }
>
> }
>
> === videoview.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"
>     >
>
>     <VideoView
>         android:id="@+id/surface_view"
>         android:layout_width="320px"
>         android:layout_height="240px"
>     />
>
> </LinearLayout>
>
> === AndroidManifest.xml ===
>
> <?xml version="1.0" encoding="utf-8"?>
> <manifest xmlns:android="http://schemas.android.com/apk/res/android";
>     package="org.jsharkey.videotest">
>     <application android:icon="@drawable/icon">
>         <activity android:name=".VideoViewDemo" 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>
>
>     <uses-permission android:name="android.permission.INTERNET" />
>     <uses-permission android:name="android.permission.WAKE_LOCK" />
> </manifest>
>
> On Aug 18, 10:31 pm, "Justin (Google Employee)" <[EMAIL PROTECTED]>
> wrote:
>
> > Code for this would be helpful. Can you provide yours for setting up
> > the VideoView, loading, and playing the file?
>
> > Cheers,
> > Justin
> > Android Team @ Google
>
> > On Aug 18, 9:03 pm, Jeffrey Sharkey <[EMAIL PROTECTED]> wrote:
>
> > > Hey there, I'm trying to play 3GP-encoded video using the
> > > VideoViewDemo example.
>
> > > It will play local 3GP videos that have been adb push'ed to the
> > > device, specifically to:
> > > /data/data/[package]/files/dailytest.3gp
>
> > > However, it refuses to play remote 3GP video from an Apache server,
> > > specifically with the error message:
>
> > > 08-19 03:36:35.785: INFO/ActivityManager(56): Displayed activity
> > > [package]/.VideoActivity: 492 ms
> > > 08-19 03:36:50.965: ERROR/MediaPlayer(2000): Error (-1,0)
> > > 08-19 03:36:50.965: DEBUG/VideoView(2000): Error: -1,0
>
> > > In addition, it refuses to play back YouTube 3GP-encoded RTSP video
> > > URLs with the same error, sometimes with the following warning
> > > attached:
>
> > > 08-19 03:51:19.055: WARN/PlayerDriver(859):
> > > PVMFInfoErrorHandlingComplete
>
> > > These same errors occur whether using setVideoPath() or
> > > setVideoURI().  The Apache server records that VideoView tries to
> > > watch the video:
>
> > > 192.168.254.240 - - [18/Aug/2008:21:36:25 -0600] "HEAD /dump/flv/
> > > dailytest.3gp HTTP/1.0" 200 - "-" "PVCore/5.02.00.00"
> > > 192.168.254.240 - - [18/Aug/2008:21:36:40 -0600] "GET /dump/flv/
> > > dailytest.3gp HTTP/1.0" 200 229635 "-" "PVCore/5.02.00.00"
>
> > > And the HEAD response from the server looks okay:
>
> > > HTTP/1.1 200 OK
> > > Date: Tue, 19 Aug 2008 03:57:54 GMT
> > > Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/
> > > 5.2.0-8+etch11
> > > Last-Modified: Thu, 17 Jul 2008 01:56:49 GMT
> > > ETag: "3a4c02f-38103-8ddeba40"
> > > Accept-Ranges: bytes
> > > Content-Length: 229635
> > > Content-Type: video/3gpp
>
> > > Is there something I'm missing?
>
> > > In the Release Notes, it mentions that MediaPlayer can't play from
> > > memory (InputStream).  Does this extend to the online video streams?
>
> > > Is this related to the Release Note that describes that MediaPlayer
> > > might
>
> > > Unfortunately, the ability to play audio streams from memory (such as
> > > via an InputStream or Reader) will not be possible in Android 1.0.
> > > Streaming seems like a big deal--if this is the case are there any
> > > recommended workarounds?
>
>
--~--~---------~--~----~------------~-------~--~----~
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]
Announcing the new Android 0.9 SDK beta!
http://android-developers.blogspot.com/2008/08/announcing-beta-release-of-android-sdk.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to