【问题标题】:Unable to play Youtube stream via VideoView. How do I fix this?无法通过 VideoView 播放 Youtube 流。我该如何解决?
【发布时间】:2012-03-08 05:42:59
【问题描述】:

我正在尝试使用 VideoView 播放 youtube 视频。它给了我“无法播放视频”错误。我在下面的代码中做错了什么。我使用的网址只是普通的 youtube 网址:http://www.youtube.com/watch?v=q7u30Li-oOc

public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    getWindow().setFormat(PixelFormat.TRANSLUCENT);
    setContentView(R.layout.main);


    //init components for use
    mVideoView = (VideoView) findViewById(R.id.video);
    text = (TextView)findViewById(R.id.textView1);

    //Get URI data from VideoDemo activity
    Bundle uristream = getIntent().getExtras();
    videoUri = uristream.getString("urivalue"); 

    //set Texfield to URI string
    text.setText(videoUri);


     //mVideoView.setVideoPath(videoUri);

    //provide VideoView component with file path and play
     mVideoView.setVideoURI(Uri.parse(videoUri));
     mVideoView.setMediaController(new MediaController(this));
     mVideoView.requestFocus();
     mVideoView.start();

  }

【问题讨论】:

  • 你能发布完整的例外吗?
  • 它并没有真正给出太多例外。它说“无法播放。抱歉,此视频无法播放”。标签:MediaPlayer 错误 (0 , 0)。我正在罗技 (Google TV) 上运行该应用
  • @MahdeTo ,它还说“无法在客户端打开文件尝试服务器端”
  • 我有确切的问题。你找到解决办法了吗?
  • @Juhani,不,不幸的是我没有。我刚刚为我的应用找到了解决方法。

标签: android android-videoview


【解决方案1】:

无需创建单独的视频视图,我们可以使用此意图直接播放 youtube 视频

startActivity(newIntent(Intent.ACTION_VIEW,Uri.parse("video url")));

【讨论】:

  • 如果我想流式传输非 youtube 内容怎么办。存储在某处数据库中的视频等。这是否适用?
  • 如何为任何文件调用操作系统默认播放器?
【解决方案2】:

这是因为您的手机不支持 MP4 视频。尝试使用播放各种视频的视频播放器,例如 daroon。如果您能够播放带有 .3gp 扩展名的视频,请首先测试您的应用程序。如果你不能,那么问题出在你的代码上。

      Uri video = Uri.parse(videoUri);

     videoView.setMediaController(mediaController);
     startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(videoUri)));
     videoView.setVideoURI(video);
     videoView.setVideoPath(videoUri);
     videoView.requestFocus();
     videoView.start();

欲了解更多信息,请转至android media format support

【讨论】:

  • 我在罗技 (Google TV) 而不是手机上运行该应用程序。
【解决方案3】:

我在上面运行了完全相同的代码,但没有为 videoUri 使用 youtube url。我将视频上传到我的站点数据库并将 videouri 设置为该 URL。 它成功了!! 显然 VideoView 和 Youtube 流不能很好地协同工作。

 mVideoView.setVideoURI(Uri.parse(videoUri));
 mVideoView.setMediaController(new MediaController(this));
 mVideoView.requestFocus();
 mVideoView.start();

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 2013-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    相关资源
    最近更新 更多