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

时间:2012-03-14 20:36:25

标签: iphone ios mobile-safari

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

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

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

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

<audio src="loop.mp3" onended="this.play();" controls="controls" autobuffer></audio>

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

6 个答案:

答案 0 :(得分:7)

NoSleep.js似乎在iOS 11中有效,据报道它也适用于Android。

旧答案

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

&#13;
&#13;
<video playsinline muted autoplay loop src="https://rawgit.com/bower-media-samples/big-buck-bunny-480p-30s/master/video.mp4" height=60></video>
&#13;
&#13;
&#13;

查看相同的演示on CodePen(包括秒表)

备注

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

答案 1 :(得分:6)

编辑:此工作不再有效。目前无法阻止手机在野生动物园中睡觉。

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

<audio loop src="http://www.sousound.com/music/healing/healing_01.mp3"></audio>

Test page:点击播放,显示屏将继续显示,但在某些设备上会变暗,例如带有iOS 7的iPhone。

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

答案 2 :(得分:1)

不,不幸的是,你不能这样做。实现这一目标的唯一方法是创建一个UIWebView应用程序并设置您在那里提供的变量 https://stackoverflow.com/a/7477438/267892

答案 3 :(得分:0)

即使这种方法在每种情况下都不合适,您也可以通过使用Javascript重新加载页面来阻止手机锁定。

// This will trigger a reload after 30 seconds
setTimeout(function(){
    self.location = self.location
}, 30000);

请注意,我使用iOS7 beta 3

进行了测试

答案 4 :(得分:0)

您可以通过每20-30秒刷一次刷新来停止在iOS Safari中暂停屏幕变暗

var stayAwake = setInterval(function () {
    location.href = location.href; //try refreshing
    window.setTimeout(window.stop, 0); //stop it soon after
}, 30000);

请负责任地使用此代码,不要“仅仅因为”使用它。如果仅需要一点,请将其禁用。

clearInterval(stayAwake); //allow device sleep again when not needed

在Safari iOS 7,7.1.2和8.1中测试过,但它可能无法用于iOS浏览器或Facebook应用等UIWebView浏览器。

演示:http://jsbin.com/kozuzuwaya/1

答案 5 :(得分:0)

如果用enter code here -tag替换音频标签,

bfred.it的答案有效 - 但仅当页面在iOS10 + Safari中打开且用户已启动视频时才有效。您可以使用CSS隐藏视频。

此外,我怀疑此功能也会在某些时候删除。

相关问题