【问题标题】:MediaPlayer / VideoView not playing video?MediaPlayer / VideoView 不播放视频?
【发布时间】:2013-04-19 09:26:58
【问题描述】:

我是 android 开发的新手,自学成才,所以可能会出现一些错误,但没有比这更令人恼火的了。我已经检查了我的代码一千次,在多个网站、书籍和论坛中搜索了很多次,但我仍然遇到同样的错误,所以这是最后的手段。

我只想在活动中播放视频的硬编码路径,这是我的视频组合应用程序的一部分。 (硬编码路径仅用于测试,稍后我会从相关按钮按下调用每个视频,但仅在我整理播放器之后!)。

这是我的代码:

String path = "android.resource://mysite/res/raw/video1"; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_videoplayer);

    VideoView view = (VideoView) this.findViewById(R.id.vv);
    MediaController controller = (MediaController) new MediaController(this);

    controller.setMediaPlayer(view);
    view.setVideoPath(path);
    view.requestFocus();
    view.start();
}

这个 sn-p 在我的 VideoPlayer 类中,其中 vv 是 XML 中的 VideoView,video1 是要播放的视频。视频为h.264 mp4,时长1分钟,大小3mb,可以通过默认播放器正常播放。

XML:

<VideoView
    android:id="@+id/vv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

活动加载但返回错误“无法播放此视频”。

任何帮助我都非常感谢。

【问题讨论】:

    标签: java android video media-player android-videoview


    【解决方案1】:
         VideoView view = (VideoView) this.findViewById(R.id.vv);
    
            view.setVideoPath(path);
            view.setMediaController(new MediaController(this));
            view.requestFocus();
            view.start();
    

    这样使用。希望这会给你一些解决方案。

    【讨论】:

    • 谢谢!朝着正确方向迈出了一步,活动现在加载了视频视图,但在加载视频文件时崩溃了,而不是只返回错误而不做任何事情。我想我把事情复杂化了。我可以从中吸取教训,现在调整活动。为什么你认为它在加载文件时崩溃?路径可能是错误的还是编解码器?感谢您的帮助。
    【解决方案2】:

    根据 Android 的official documentation 视频解码支持从 android 3.0+ 添加的 MP4(h.264),所以我认为您正在播放此视频的版本低于 3.0。在android os 3.0+的设备上试一下。

    【讨论】:

    • 感谢您的回复,我已经在我的 HTC Desire 上的 CM9(我相信它基于 ICS)和我的 GS3 上的 4.1.2 JB 上进行了测试,所以它们都应该可以工作。我真的很难过。还有其他建议吗?
    【解决方案3】:

    试试这个..

    video0=(VideoView)findViewById(R.id.vv);
    video0.setMediaController(new MediaController(this));
    video0.setVideoURI(Uri.parse("android.resource://" +getPackageName()+ "/" +R.raw.video1));
    video0.requestFocus();
    video0.start();
    

    【讨论】:

      【解决方案4】:

      你试过了吗
      MediaController mc = new MediaController(this); mc.setAnchorView(vv);

      【讨论】:

      • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多