Could not open file on client side

I am trying to play a video as a video in Android. but when I run the code, it opens the media player, but does not play the video and does not give me an error message, and the cat log shows "cannot open the file on the client side, trying on the server side". here is my code:

public class ExercisesActivity extends Activity {

VideoView videoView;
String videoUrl;
public boolean flage = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_exercises);

     videoView = (VideoView)findViewById(R.id.videoView);
    new performBackgroundTask(ExercisesActivity.this).execute();
}

public void onPause ()
{
super.onPause();
videoView.stopPlayback();
}

private class performBackgroundTask extends AsyncTask < Void, Void, Void >
{


                private ProgressDialog Dialog;

                    public performBackgroundTask(ExercisesActivity context)
                    {
                        Dialog = new ProgressDialog(context);
                    }                   



            protected void onPreExecute()
               {

                this.Dialog.setMessage("Loading Video...");
                this.Dialog.show();

              }


             protected Void doInBackground(Void... params)
             {
                 try
                 {
                     String url = "http://www.youtube.com/watch?v=m5_AKjDdqaU";
                     videoUrl = getUrlVideoRTSP(url);
                     Log.e("Video url for playing=========>>>>>", videoUrl);
                 }
                 catch (Exception e)
                 {
                     Log.e("Login Soap Calling in Exception", e.toString());
                 }
                          return null;
             }


            protected void onPostExecute(Void unused)
           {


                if(!flage){

                    if(Dialog.isShowing())
                    {
                        Dialog.dismiss();
                    }


                }
                else
                {
                    videoView.setVideoURI(Uri.parse(videoUrl));
        MediaController mc = new  MediaController(ExercisesActivity.this);
                    videoView.setMediaController(mc);
                    videoView.requestFocus();
                    videoView.start();          
                    mc.show();
                }

                    if(Dialog.isShowing())
                    {
                        Dialog.dismiss();
                    }
                }

            }


public static String getUrlVideoRTSP(String urlYoutube)
    {
    try
    {
        String gdy = "http://gdata.youtube.com/feeds/api/videos/";
        DocumentBuilder  documentBuilder
       =DocumentBuilderFactory.newInstance().newDocumentBuilder();   
        String id = extractYoutubeId(urlYoutube);
        URL url = new URL(gdy + id);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        Document doc = documentBuilder.parse(connection.getInputStream());
        Element el = doc.getDocumentElement();
        NodeList list = el.getElementsByTagName("media:content");///media:content
        String cursor = urlYoutube;
        for (int i = 0; i < list.getLength(); i++)
        {
            Node node = list.item(i);
            if (node != null)
            {
                NamedNodeMap nodeMap = node.getAttributes();
                HashMap<String, String> maps = new HashMap<String, String>();
                for (int j = 0; j < nodeMap.getLength(); j++)
                {
                    Attr att = (Attr) nodeMap.item(j);
                    maps.put(att.getName(), att.getValue());
                }
                if (maps.containsKey("yt:format"))
                {
                    String f = maps.get("yt:format");
                    if (maps.containsKey("url"))
                    {
                        cursor = maps.get("url");
                    }
                    if (f.equals("1"))
                        return cursor;
                }
            }
        }
        return cursor;
    }
    catch (Exception ex)
    {
        Log.e("Get Url Video RTSP Exception======>>", ex.toString());
    }
    return urlYoutube;

}

protected static String extractYoutubeId(String url) throws MalformedURLException      

{        String id = null;
    try
    {
        String query = new URL(url).getQuery();
        if (query != null)
        {
            String[] param = query.split("&");
            for (String row : param)
            {
                String[] param1 = row.split("=");
                if (param1[0].equals("v"))
                {
                    id = param1[1];
                }
            }
        }
        else
        {
            if (url.contains("embed"))
            {
                id = url.substring(url.lastIndexOf("/") + 1);
            }
        }
    }
    catch (Exception ex)
    {
        Log.e("Exception", ex.toString());
    }
    return id;
    }

}

The log cat shows:

01-07 20:36:40.388: E/Video url for playing=========>>>>>(378):
rtsp://r4---sn-4g57kue6.c.youtube.com/CiILENy73wIaGQmlqd0wKsCfmxMYDSANFEgGUgZ2aWRlb3MM

/0/0/0/video.3gp
01-07 20:36:40.398: D/MediaPlayer(378): Couldn't open file on client side, trying
server side
0
source share
1 answer

The RTSP link does not work for any data provided by Youtube API version 2.0. And I don’t think it will be fixed. https://code.google.com/p/gdata-issues/issues/detail?id=4858

0
source

All Articles