【问题标题】:android videoview error 1, -2147483648android videoview错误1,-2147483648
【发布时间】:2014-02-21 05:18:13
【问题描述】:

播放资产文件夹和原始文件夹中的视频时出错。
媒体播放器错误 (1, -2147483648) VideoView 错误 1,-2147483648。

我尝试从资产文件夹作为。

private String SrcPath = "file:///android_asset/aaa.mp4"; //also tried aaaa.mp3
VideoView vv = (VideoView)findViewById(R.id.videoView1);
vv.setVideoPath(SrcPath);
MediaController controller = new MediaController(this);
controller.setAnchorView(vv);
vv.setMediaController(controller);
vv.requestFocus();
vv.start();

对于原始文件夹,我使用 URI 作为:

Uri video = Uri.parse("android.resource://com.usecontentprovider/raw/aaa.mp4");
vv.setVideoURI(video);

我在这两种情况下都收到了相同的错误消息。

【问题讨论】:

  • 通常该错误意味着您的设备不支持您正在播放的视频格式。
  • 我在 AVD 上运行我的应用程序,我尝试了 5-6 个不同配置的 AVD,但错误仍然相同。我们可以在虚拟设备中播放视频吗?
  • 啊……现在在真机上试试吧。除非您使用任何未知格式,否则您通常不会在真实设备中遇到该错误。
  • 好的,我会在真机上试试
  • 无论如何,感谢您的快速回复

标签: android android-mediaplayer android-videoview


【解决方案1】:

您可以使用avinaptic2之类的软件来获取视频编码信息,并确保它与supported media formats in android匹配。

我发现的一个常见问题是视频使用错误的配置文件进行编码。 H.264 视频需要使用 Baseline level 3 或更低的编码才能在 Android 中播放而不会出现错误或伪影。

【讨论】:

    【解决方案2】:

    我找到了解决方案,因为我可以在虚拟设备上播放视频。

    我换了行

    Uri video = Uri.parse("android.resource://com.usecontentprovider/raw/aaa.mp4");
    

    Uri video = Uri.parse("android.resource://com.usecontentprovider/raw/"+R.raw.aaa);
    

    它的工作原理

    【讨论】:

    • 如何从url播放
    • 那么 R.raw.aaa 与 aaa.mp4 有何不同?
    • @hariszaman R.raw.aaa 是一个资源ID(一个int),而带有aaa.mp4 的字符串是一个字符串。
    【解决方案3】:

    使用R.raw 可以正常工作,但在某些情况下我仍然会遇到同样的错误。幸运的是,我找到了解决问题的方法:我必须在 onPrepare() 中调用 videoView.start()

    您可以在这里查看正确答案: Android: 'Can't play this video'; MediaPlayer & VideoView Error 1 -38

    【讨论】:

      猜你喜欢
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多