0

我正在尝试开发一个 Android 应用程序来从 URL 流式传输视频。但我收到以下错误。

@Override
public void onClick(View v) {

    Log.d("TAG", "on Click");
    System.out.println("on Click");
    // TODO Auto-generated method stub
    if(v==play)
    {
         if( mp.isPlaying()==false && mp!=null)
         {

                  mp.start();
         }
    }
    if(v==stop)
    {
        mp.stop();
        mp.release();
        mp=null;
    }
    if(v==sd)
    {
        Log.d("TAG", "Loading the video file");
        //path="C:\\Users\\Public\\Videos\\Sample Videos\\Wildlife.wmv";
        //path="http://10.17.68.18:8080/stream";
        path = "http://www.youtube.com/watch?v=wBGIoxvEakw";

        try{

            mp=new MediaPlayer();
            mp.reset();
            mp.setDataSource(URLEncoder.encode(path,"UTF-8"));
            mp.prepareAsync();
            mp.setOnPreparedListener(new OnPreparedListener(){
                public void onPrepared(MediaPlayer mp) {
                    Log.d("TAG", "Playing the video file");
                    mp.start();
                }
            });

            //mp.start();
        }
        catch( Exception e)
        {
            System.out.println(e);
            Toast.makeText(this,e.toString(),Toast.LENGTH_LONG)
            .show();
        }
    }

}

错误日志:

02-09 20:44:11.746: W/MediaPlayer(2807): info/warning (1, 26)
02-09 20:44:11.746: E/MediaPlayer(2807): error (-4, -4)
02-09 20:44:11.777: I/MediaPlayer(2807): Info (1,26)
02-09 20:44:11.785: E/MediaPlayer(2807): Error (-4,-4)
02-09 20:49:50.815: W/KeyCharacterMap(2807): No keyboard for id 0
4

2 回答 2

0

鉴于 Youtube URL 不提供媒体流,仅提供 youtube 网页。

如果您想在 Android 平台播放 youtube 内容,请考虑使用 Youtube Android API。

https://developers.google.com/youtube/android/player/

于 2013-02-10T04:06:48.293 回答
0

据我所知,setDataSource(String) 将导致流式 URL 异常。它仅适用于本地文件。

您应该使用 setDataSource(Context , Uri) 流式传输 url。

于 2013-12-10T02:24:51.020 回答