Android VideoView 错误 1,0

2023-12-21

我有一个应用程序,其主要目标是播放特定的视频文件。

有时它可以正确播放视频。但其他时候它会给我这个错误:

03-21 14:52:36.181: I/AwesomePlayer(119): 
setDataSource_l('/data/data/my.package.name/files/MyMovie.mp4')
03-21 14:52:36.196: W/VideoView(26612): Unable to open content: /data/data/my.package.name/files/MyMovie.mp4
03-21 14:52:36.196: W/VideoView(26612): java.lang.IllegalArgumentException: The surface has been released
03-21 14:52:36.196: W/VideoView(26612):     at android.media.MediaPlayer._setVideoSurface(Native Method)
03-21 14:52:36.196: W/VideoView(26612):     at android.media.MediaPlayer.setDisplay(MediaPlayer.java:633)
03-21 14:52:36.196: W/VideoView(26612):     at android.widget.VideoView.openVideo(VideoView.java:222)
03-21 14:52:36.196: W/VideoView(26612):     at android.widget.VideoView.access$2000(VideoView.java:49)
03-21 14:52:36.196: W/VideoView(26612):     at android.widget.VideoView$6.surfaceCreated(VideoView.java:465)
03-21 14:52:36.196: W/VideoView(26612):     at android.view.SurfaceView.updateWindow(SurfaceView.java:533)
03-21 14:52:36.196: W/VideoView(26612):     at android.view.SurfaceView.access$000(SurfaceView.java:81)
03-21 14:52:36.196: W/VideoView(26612):     at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:169)
03-21 14:52:36.196: W/VideoView(26612):     at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:590)
03-21 14:52:36.196: W/VideoView(26612):     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1617)
03-21 14:52:36.196: W/VideoView(26612):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
03-21 14:52:36.196: W/VideoView(26612):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-21 14:52:36.196: W/VideoView(26612):     at android.os.Looper.loop(Looper.java:137)
03-21 14:52:36.196: W/VideoView(26612):     at android.app.ActivityThread.main(ActivityThread.java:4424)
03-21 14:52:36.196: W/VideoView(26612):     at java.lang.reflect.Method.invokeNative(Native Method)
03-21 14:52:36.196: W/VideoView(26612):     at java.lang.reflect.Method.invoke(Method.java:511)
03-21 14:52:36.196: W/VideoView(26612):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-21 14:52:36.196: W/VideoView(26612):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-21 14:52:36.196: W/VideoView(26612):     at dalvik.system.NativeStart.main(Native Method)
03-21 14:52:36.196: D/VideoView(26612): Error: 1,0

我正在使用准备好的侦听器来调用 start,如下所示:

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer arg0) {
        mVideoView.start();

    }
});

我这样设置数据源:

file = new File(this.getFilesDir() + File.separator + VIDEO_FILE_NAME);
mVideoView.setVideoPath(file.getAbsolutePath());

我确信该文件确实存在并且格式正确。

我的应用程序能够从警报触发器启动。这似乎只有在设备屏幕关闭时触发器触发并启动我的应用程序时才会出现问题(我的应用程序将通过唤醒锁打开屏幕)。如果我手动启动应用程序,或者触发事件发生在视频屏幕上,则可以正常播放。此错误也仅发生在 Galaxy Nexus 上。我可以在 Nexus S(以及一长串其他代码)上运行完全相同的代码,并且每次都能正常启动。

有谁知道 Galaxy Nexus 或 ICS 的任何特定情况可能导致此行为?对于我可以尝试解决的问题有什么建议吗?


UThis已连接到您的SurfaceView。 确保在 MediaPlayer 上调用准备并且它可见后不要触摸 SurfaceView。如果您尝试唤醒屏幕,请确保一切都按正确的顺序发生。因此,准备 MediaPlayer 进行播放是您的应用程序应该做的最后一件事。可能是在应用程序完全唤醒之前启动准备/播放,导致应用程序尝试操作 SurfaceView。

下面的代码示例说明了如何触发此类异常:

   private void setupVideo(String file){
      ...
      mSurfaceView = (SurfaceView) findViewById(R.id.surface);
      mHolder = mSurfaceView.getHolder(); // DON'T TOUCH BEHIND THIS POINT
      mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
      mMediaPlayer.setDisplay(mHolder);
      mMediaPlayer.setOnPreparedListener(this);
      mMediaPlayer.prepare();
   }
   @Override
   public void onPrepared(final MediaPlayer mp) {
      mSurfaceView.setVisibility(View.VISIBLE); // THIS WILL CAUSE THE ERROR
      mp.start();
   }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android VideoView 错误 1,0 的相关文章

  • 在 Android 上将视频设置为壁纸

    我想知道如何将视频设置为壁纸 否则不可能 我可以将图像设置为壁纸 并且可以构建动态壁纸 但无法将视频设置为壁纸 所以有人知道我该怎么做吗 提前致谢 我认为唯一可以做到的方法是将其合并到 动态壁纸 中 缺点是正如其他人提到的那样 这会严重影响
  • 致命异常:Google 地图 V2 中的 GLThread、StackOverflowError

    我正在实施 Google 地图 V2 并利用从外部 GPX 文件接收的交付路线 设备路径 设备当前位置和交付点位置 问题是它大多数时候都有效 我收到的错误 当它不起作用时 是下一个 03 16 20 48 37 811 I dalvikvm
  • Android:动态更改Listview中的图像

    我有一个由以下 xml 定义的列表视图 我需要切换图像当用户单击任何行时 在运行时会出现在列表中 我怎样才能实现这个目标 非常感谢任何帮助 谢谢 list item xml
  • 是否仍然建议使用 AsyncTask 在后台加载 listView 项目?

    背景 我听说有一些在后台加载数据的新解决方案比 AsyncTask 更值得推荐 例如loaders http developer android com reference android content Loader html 问题 As
  • Android 测试 java.lang.NoClassDefFoundError 由于 Fest-Android 出现错误

    我目前正在我的项目中实现 Android 版 Fest 但我似乎遇到了依赖问题 如果我在不包含 Fest 库的情况下运行测试 测试将正常运行 一旦我添加了 Fest 库 测试就不再运行 相反 会抛出异常 我的项目使用以下依赖项 compil
  • 垂直翻转 Android Canvas

    有没有一种简单的方法可以在 Android 中翻转画布 我似乎找不到任何可以让我垂直翻转它的东西 这样 y 轴上的零就是手机屏幕的底部而不是顶部 如果解决方案不是特别快也没关系 因为我没有对画布进行任何计算密集的操作 提前致谢 Try ca
  • Android 上 Java 库中的代码出现 NoClassDefFoundError

    我的用户经常遇到错误 应用程序在启动期间崩溃 当应该加载 MainActivity 时 VM 显然找不到该类 我不明白为什么 该应用程序的架构是 我的免费版和专业版都使用一个通用项目 不知道是否相关 请参阅下面的堆栈跟踪 有什么想法吗 ja
  • 如何编写 adb jdwp + adbforward 脚本?

    我正在尝试使用命令行和脚本工具调试 Android 应用程序 我已经受够了 Android Studio 占用我的 CPU 要连接到我的应用程序 我需要adb jdwp获取 pid 然后adb forward tcp 8700 jdwp
  • android device.getUuids 返回 null

    我正在尝试使用低功耗蓝牙 BLE 通过 Android 应用程序连接到 Arduino Uno 我正在 Android Studio 上进行开发 使用 Samsung Galaxy S4 和 Android 版本 5 0 1 进行测试我点击
  • 拥有可重用对话框的最佳方法是什么?

    在 Android 中创建可重用对话框的最佳方法是什么 阅读通过对话框开发指南 http developer android com guide topics ui dialogs html 我知道我可以使用AlertDialog Buil
  • 可下载字体例外

    我决定使用可下载字体 https developer android com guide topics ui look and feel downloadable fonts html在我的项目中 IS 按照指南中的建议实施了所有内容 当我
  • 应用程序运行时相对布局中的元素显示不同

    我有一个ListView在片段内创建 并且它有一个搜索过滤器 问题是 XML 布局在 android studio 中显示正常 但在模拟器或手机中运行时 它显示不同 与我对齐时不正确 并且当我单击SearchView它位于选项卡导航下方 谁
  • Android Studio错误的含义:未注释的参数覆盖@NonNull参数

    我正在尝试 Android Studio 创建新项目并添加默认值后onSaveInstanceState方法创建 MyActivity 类 当我尝试将代码提交到 Git 时 我收到一个我不明白的奇怪错误 代码是这样的 我得到的错误是这样的
  • 使用磁场计算旋转矩阵

    在获取旋转矩阵值时它包含public static boolean getRotationMatrix float R float I float gravity float geomagnetic 这里我如何计算float gravity
  • 不幸的是 Project_Name 已停止

    我有一个简单的应用程序 您可以在文本视图中输入文本并按提交 它会在另一个活动中显示文本 然而 当我按下提交时 给我消息 不幸的是 发送已停止 我查看了SO上的其他线程 但是不幸的是 myfirstproject 在 java 中停止工作错误
  • 如何在jetpack compose中删除文本基线下方的空间?

    目前我得到这个 但我想要这样的东西 而且 50 和 min 中的文本也应该与顶部对齐 My code Row verticalAlignment Alignment Bottom Text text 18 color MaterialThe
  • 如何在不下载子项的情况下从 Firebase 获取子项密钥?

    我有一个 Firebase 数据库 其中的节点 items 有很多子项 我想导入子项键的列表 由于每个子项都包含相当多我对此不感兴趣的数据 因此我想仅下载子项密钥 以最大程度地减少传输的数据量 为了便于说明 假设我有以下数据结构 然后我想获
  • 如何在 Android 应用程序退出之前进行一些清理?

    当我的 Android 应用程序终止时 是否有某种 onTerminate 方法可以进行一些清理 我想清除一些 SharedPreferences 我有一个活动 它保持几个数字的运行平均值 并将其存储在 SharedPreference 中
  • Android:在surfaceview上实现admob

    我有一个使用 SurfaceView 的小游戏形式的活动 下面是代码片段 我很困惑如何在 SurfaceView 上实现 admob 请建议 public class DroidzActivity extends Activity priv
  • 在自定义对话框中设置文本视图

    我创建了一个自定义对话框 但无法将文本设置到 java 对话框布局中的文本视图中 并且我的程序崩溃了 我的错误是什么 public class Total CBC extends Activity Override protected vo

随机推荐

  • 如何用java实现SOA?

    我是 SOA 的新手 我想知道如何在 Java 中实现 SOA 我正在浏览各种仅处理概念的站点 它没有给出有关实现细节的清晰想法 以便在 Java 中使用 SOA 请提供有关如何实施 SOA 的详细信息 Thanks SOA 是关于设计原则
  • 向 Android SwipeRefreshLayout 添加文本提示

    如何在 listView 的顶部添加提示 例如 下拉刷新 该提示包含在 android support v4 的 swipeRefreshLayout 中 下拉刷新有效 但我想在用户稍微向下拉列表视图时添加文本 编辑 2014 年 10 月
  • Powershell 命令将断开连接的用户踢出服务器

    是否有一个 powershell 命令可以用来将 断开连接 的用户踢出服务器 一旦我知道踢单个用户的单行代码 我就可以编写脚本 例如 我想踢掉下面对话框中看到的 8 个用户 我不能尝试这个 pc qwinsta server YourSer
  • Ionic - 如何禁用 Android 键盘上的键盘建议

    我已经尝试了所有 ion textarea 的可能性 例如 type email 等 我无法让它在所有 Android 版本上工作 我已经安装了 cordova plugin ionic keyboard 它显示了没有建议的键盘 图 A 但
  • 使用 OpenID 登录时如何转义 URL 中的 & 符号?

    好吧 实际上我知道 我应该用 26 替换 但我使用此 URL 通过 OpenID 登录 如您所见 continue 参数已正确转义 但是在通过 Google 登录页面重定向后 它会将我重定向回 https innubili gidea ap
  • 如何为 UITabBarItem 创建操作?

    我创建了一个没有 UITabBarController 的 UITabBar 和 UITabBarItems 现在我想知道如何在单击 UITabBarItem 时放置一个操作 我应该使用什么方法对 UITabBarItem 执行操作 您无法
  • VSCode 重新映射键盘快捷键

    I have been trying for awhile now to remap the Ctrl Tab and Ctrl Shift Tab keys to switch editor tabs linearly Like they
  • 使用 Ruby 1.9.3 时出现“证书验证失败”OpenSSL 错误

    我在 Mac OS 10 6 8 上使用 Ruby 1 9 3p0 使用 rvm 安装 当我尝试使用创建新的 Rails 应用程序时托管在 GitHub 上的应用程序模板 https github com RailsApps rails3
  • 如何 printf 像表格一样对齐我的输出?

    printf 如何像表格一样对齐输出 Title Author BaokyBook Baoky2 Use basename commandUse basename command Baoky 我的部分代码是这样的 titlelength t
  • NSTimer 暂停不起作用

    我设置了三个按钮start stop pause 并给 NSTimer 提供控制来计算 开始停止按钮工作正常 给了我开始和停止时间 但是pause按钮没有给我准确的时间 它实际上是暂停时间 但再次开始它会添加暂停的计时和显示 ay 假设我在
  • OpenCV 框架:未找到架构 armv7 的符号

    我有预编译opencv2 framework http sourceforge net projects opencvlibrary files opencv ios 2 4 8 来自 OpenCV 我已将其添加到我的项目中 然而 尝试编译
  • nginx 配置以启用具有源匹配的 CORS

    我尝试过使用一个非常流行的配置 https gist github com Stanback 7145487对于nginx 它启用了CORS并支持使用正则表达式进行源匹配 这是我的配置 server listen 80 default se
  • 如何在 C# 中更改 WebBrowser 控件用户代理 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我是在 C 中使用 WebBrows
  • 使用 FFT 结果重新创建时间序列数据,而不使用 ifft

    我使用 fft 分析了 sunspots dat 数据 如下 这是该领域的一个经典示例 我从实部和虚部的 FFT 中获得了结果 然后我尝试使用这些系数 前 20 个 按照傅立叶变换公式重新创建数据 认为实部对应于a n 想象部分对应于b n
  • 如何在 K - 均值算法中优化 K [重复]

    这个问题在这里已经有答案了 可能的重复 使用 k 均值聚类时如何确定 k https stackoverflow com questions 1793532 how do i determine k when using k means c
  • Python 中的 CSV 列到数组

    我很难处理一个在我看来很简单的问题 我正在尝试导入 csv 并将其列拆分为数组 我可以对其运行不同的操作 然后 zip 重新组合在一起 import csv data csv reader open test csv rb delimite
  • 通过 VSTS 在 azure 部署中包含节点模块

    我有一个 Azure 应用程序服务 需要将其部署为 VSTS 中发布定义的一部分 为了提供一些上下文 它是一个 ASP NET MVC 应用程序并使用 Angular 2 它还有一个 package json 文件 我有一个 VSTS 构建
  • 使用 Raw-Loader 将 SVG 标记嵌入 vue-component 中

    我正在使用 webpack 导入 SVG原始装载机 https github com webpack contrib raw loader 这意味着我想将实际的 SVG XML 按原样嵌入到我的标记中 我正在尝试执行以下操作
  • 将 2D 数组索引转换为 1D 索引

    我有两个用于国际象棋变体的数组 我正在用java编码 到目前为止 我有一个控制台版本 它将棋盘表示为一维数组 大小为32 但我正在为其制作一个GUI 我想要它显示为 4x8 网格 所以我有一个 JPanel 的二维数组 问题是 考虑到它是一
  • Android VideoView 错误 1,0

    我有一个应用程序 其主要目标是播放特定的视频文件 有时它可以正确播放视频 但其他时候它会给我这个错误 03 21 14 52 36 181 I AwesomePlayer 119 setDataSource l data data my p