防止iOS移动游戏变为空闲/自动锁定/睡眠?

for*_*rex 35 iphone mobile-safari ios

在iOS应用中,您可以设置application.idleTimerDisabled = YES为阻止手机自动锁定.

我需要在手机游戏中使用Doodle Jump这样的游戏,用户可能不会长时间触摸屏幕.是否有任何记录的方法或黑客做到这一点?

(更新)他们似乎在这个网站http://www.uncoveryourworld.com以某种方式这样做.从您的iPhone访问,当您到达建筑物/街道场景,在后台播放音乐时,只需将手机单独留下即可.它永远不会入睡.

(更新2)我花了一些时间仔细研究一下他们如何让手机进入睡眠状态.我做了一个准系统测试,似乎他们在街景中循环音频的方式是让它无法进入睡眠状态.如果您想测试一下,只需将一个简单的音频播放器环绕在您的页面上并单击播放:

<audio src="loop.mp3" onended="this.play();" controls="controls" autobuffer></audio>
Run Code Online (Sandbox Code Playgroud)

在我搜索到的任何地方都说这是不可能的,所以很高兴看到即使有点黑客也至少有一些方法可以做到这一点.否则,基于浏览器的游戏将无法进行涂鸦跳转式游戏.因此,如果合适,您可以在游戏/应用中使用循环,或者只是播放静音循环.

fre*_*nte 8

NoSleep.js似乎可以在iOS 11中运行,据说它也适用于Android.


老答案

这是一个简单的HTML方法:循环内联自动播放视频(它也可以在Android Chrome 53+中使用)

<video playsinline muted autoplay loop src="https://rawgit.com/bower-media-samples/big-buck-bunny-480p-30s/master/video.mp4" height=60></video>
Run Code Online (Sandbox Code Playgroud)

在CodePen上看到相同的演示(包括秒表)

笔记

  • 避免为此加载大视频.也许制作一个简短的小型黑色视频或使用
  • 要使其完全正常工作,视频需要始终在视口中,或者您需要通过JS开始播放:video.play()


rob*_*xes 6

编辑:这项工作不再有效.目前无法阻止手机在野外探险中睡觉.

是的,您可以使用音频循环阻止手机进入睡眠状态.该技巧不会自动启动,当访问者触摸屏幕时您必须播放它.

<audio loop src="http://www.sousound.com/music/healing/healing_01.mp3"></audio>
Run Code Online (Sandbox Code Playgroud)

测试页面:点击播放,显示屏将保持打开但在某些设备上会变暗,例如带有iOS 7的iPhone.

注意:小心使用这个技巧,因为它会阻止访问者可能正在使用的任何音乐 - 它会惹恼他们.


Emi*_*mil 2

不,不幸的是,你不能这样做。实现此目的的唯一方法是创建一个 UIWebView 应用程序并设置您在那里提供的变量。
/sf/answers/523420691/