我正在开发一个针对 Api 19 的应用程序,它基本上是一个处理草图。
我面临的问题是我的应用程序第一次运行时,在安装后,它运行良好,直到用户将其发送到后台。然后,如果他们再次单击应用程序图标,则调用 onCreate() 但活动不会被销毁或重新启动。一些变量会发生变化,从而产生奇怪的行为。
这仅在第一次使用该应用程序时发生。强制关闭它后,这种行为不会再发生(据我测试)。从 Eclipse 启动应用程序时也不会发生这种情况。
总而言之,这是第一次强制关闭后发生的情况(我认为是正确的):
活动正在运行。
活动通过主页按钮返回
暂停()
我们再次点击应用程序图标
onResume()
这就是 - 仅 - 安装后第一次运行应用程序时发生的情况:
活动正在运行。
活动通过主页按钮返回
暂停()
我们再次点击应用程序图标
onCreate() <-- !! 注意没有 onDestroy()
onResume()
我想知道我使用沉浸式模式是否与此有关,但是将 Api 目标版本更改为 10、删除沉浸式模式或在旧设备上进行测试都无济于事。当然,我在清单上使用了android:configChanges="orientation|keyboardHidden|screenSize"。
有没有人知道可能导致这种情况的原因?这是一个常见问题还是我应该在我的代码中查找错误?也许是处理错误?
提前感谢您提供任何线索。我希望这是询问这个问题的正确方式。这是我的第一篇文章。
更新: 我的解释不是很准确,但显然有一个错误报告。这个问题在这里解释得更好:https : //code.google.com/p/android/issues/detail?id=26658
不幸的是,我无法使建议的解决方案起作用,在 onCreate() 中使用它会导致我的应用程序关闭或崩溃:
if (!isTaskRoot()) {
finish();
return;
}
Run Code Online (Sandbox Code Playgroud) 我有一个 Electron JS 应用程序,我可以在画布上绘制内容,然后将每个帧发送到 ffmpeg 以创建视频。它运作良好,但性能不是很好。这就是我目前的做法:
我测量了每个步骤所需的时间,到目前为止,瓶颈是 canvas.toBlob
有没有办法更快地完成整个过程或 toBlob 步骤?我已经研究过 HTMLCanvasElement.captureStream() 但我不认为我可以将其通过管道传递给 ffmpeg。
我正在使用 P5js 进行绘图。似乎没有办法直接(更多地)绘制到 blob 或缓冲区。甚至 p5.Graphics 似乎也绘制到隐藏的画布https://p5js.org/reference/#/p5.Graphics
谢谢
4.4 之后的 ffprobe 版本不允许通过-select_streams v:0 -show_entries stream_tags=rotate读取视频方向。显然这是设计使然,另一种方法是读取显示矩阵侧数据,根据此票证: https: //trac.ffmpeg.org/ticket/9452
这适用于 Mac:
ffprobe -loglevel error -select_streams v:0 -show_entries side_data=rotation -of default=nw=1:nk=1 input.mp4
Run Code Online (Sandbox Code Playgroud)
但在 Windows 版 ffprobe 上,无论新旧版本,程序都会永远挂起。有可行的替代方案吗?或者如果我们需要旋转数据,我们应该坚持使用 ffprobe 4.4 吗?或者有没有办法在 ffmpeg 中阅读这个?
谢谢
ffmpeg ×2
android ×1
ffprobe ×1
html ×1
html5-canvas ×1
javascript ×1
oncreate ×1
onpause ×1
p5.js ×1
rotation ×1