在 OSX Safari 上,单击全屏时的 HTML5 视频标记。如何强制视频覆盖全屏,而不是显示带有黑色背景的小尺寸(可能是原始尺寸)?
我正在使用 HTML5 元素开发自定义视频播放器video,但无法让全屏按钮与Fullscreen API一起使用。
当我点击它时,我收到错误消息:
Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
Run Code Online (Sandbox Code Playgroud)
但是,我正在使用用户手势发起调用requestFullscreen...除非我误解了用户手势的构成。单击元素是一种用户手势,不是吗?
我意识到 SO 上有很多关于全屏 API 的问题,但看起来很多人都想在没有用户交互的情况下启动全屏模式。
我究竟做错了什么?
有一支笔带有此代码,但当我找到解决方案时,我可能会更改它。我不会改变这里的代码。
这是代码:
Failed to execute 'requestFullscreen' on 'Element': API can only be initiated by a user gesture.
Run Code Online (Sandbox Code Playgroud)
/* Get our elements. */
const player = document.querySelector('.player');
const video = player.querySelector('.viewer');
const progress = player.querySelector('.progress');
const progressBar = player.querySelector('.progress__filled');
const toggle = player.querySelector('.toggle');
const skipButtons = …Run Code Online (Sandbox Code Playgroud)有没有办法退出通过点击创建的全屏F11?
FullScreen: {
_callback: null,
enabled : function () {
return document.fullscreenEnabled ||
document.webkitFullscreenEnabled ||
document.mozFullScreenEnabled ||
document.msFullscreenEnabled;
},
request: function (i) {
if (i.requestFullscreen) {
i.requestFullscreen();
} else if (i.webkitRequestFullscreen) {
i.webkitRequestFullscreen();
} else if (i.mozRequestFullScreen) {
i.mozRequestFullScreen();
} else if (i.msRequestFullscreen) {
i.msRequestFullscreen();
}
},
element: function () {
return document.fullscreenElement ||
document.webkitFullscreenElement ||
document.mozFullScreenElement ||
document.msFullscreenElement;
},
exit: function () {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
} else if (document.mozCancelFullScreen) …Run Code Online (Sandbox Code Playgroud) 仅出于内部目的/仅在我们的企业内部,我想要一台 Android 平板电脑,它只运行一个应用程序(用 Ionic/Angular 制作),甚至在重新启动平板电脑后也会出现该应用程序,并且用户无法离开它。
我认为我想要实现的技术描述称为专用设备(以前称为企业拥有的一次性设备,或 COSU)。
我想通过Android Management API来实现这一点,这看起来是 MDM(移动设备管理)解决方案的绝佳选择。
Google在此展示了如何通过 Android 管理 API 策略来实现这一目标。
我无法摆脱状态栏和导航栏。
出于测试目的,我尝试使用常规 YouTube 应用来实现此目的。我"statusBarDisabled": true,能够禁用状态栏,因此用户无法与其交互,但它仍然可见。
导航栏也是如此
"persistentPreferredActivities":[
{
"receiverActivity":"com.google.android.youtube",
"actions":[
"android.intent.action.MAIN"
],
"categories":[
"android.intent.category.HOME",
"android.intent.category.DEFAULT"
]
}
]
Run Code Online (Sandbox Code Playgroud)
我能够隐藏主页和最近使用的按钮,但后退按钮仍然存在,并且整个导航栏可见。
下图直观地展示了该问题:
有人知道如何完全摆脱状态栏和导航栏吗?
这就是我的整个政策的样子:
import json
policy_name = enterprise_name + '/policies/policy1'
policy_json = '''
{
"safeBootDisabled": true,
"statusBarDisabled": true,
"keyguardDisabled": true,
"screenCaptureDisabled": true,
"factoryResetDisabled": true,
"cameraDisabled": true,
"blockApplicationsEnabled": true,
"systemUpdate": {
"type": "WINDOWED",
"startMinutes": 120,
"endMinutes": 240
}, …Run Code Online (Sandbox Code Playgroud) fullscreen statusbar navigationbar kiosk-mode android-management-api
我按照Android 开发教程操作并获得了全屏粘性沉浸模式。这使得状态栏和导航栏隐藏,直到用户从底部向上或从顶部向下滑动,此时它们会出现并在不使用时慢慢淡出。
问题出在 Android 10(可能还有其他版本)上:屏幕底部的导航栏只是白色图标。没有透明的黑色背景。这使得使用浅色用户界面很难看清。
有没有办法改变导航栏的背景或图标颜色?特别是粘性的沉浸式导航栏,它会出现并消失(因为它太轻,无法与浅色 UI 一起使用)。
我尝试过以编程方式设置样式和颜色,但它们仅在非全屏模式下工作:
<!-- does not work -->
<item name="android:navigationBarColor">@android:color/white</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowLightNavigationBar">true</item>
Run Code Online (Sandbox Code Playgroud)
我也尝试过聆听,OnSystemUiVisibilityChangeListener这样我就可以在导航栏后面显示我自己的透明栏,但它不会触发粘性沉浸模式(如本 SO 帖子和视频中所述):
https://www.youtube.com/watch?v=cBi8fjv90E4&feature=youtu.be&t=6m56s
设置全屏的活动代码(kotlin):
protected fun isFullscreen() = defaultSharedPref.getBoolean(SharedPreferenceKey.IS_FULL_SCREEN, false)
private fun supportsFullscreenMode(): Boolean {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus && isFullscreen()) toggleFullScreenMode(true)
}
/**
* "sticky immersive" full screen mode.
* When user swipes from top/bottom edge, transparent status bar and navigation bar appear and …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 SwiftUI 中的应用程序上添加全屏视图。这样做的目的是要有一个淡入的“阴影”,使屏幕变暗并将焦点集中到自定义弹出窗口,从而禁用背景中的内容。请参阅下面的视觉示例:
我试图添加此阴影的视图嵌入在复杂的 NavigationView 堆栈中(几层深,通过 a 访问NavigationLink),并且还有一个可见的 TabBar。到目前为止,我已经尝试将NavigationViewa 嵌入ZStack并在顶部添加 aRectangle()但无济于事,NavigationBar 和 TabBar 仍然位于此视图的顶部。我也尝试过使用修饰符,.zIndex()但这似乎没有任何作用。
任何帮助深表感谢,
谢谢
我想在应用程序中进行全屏显示,我用这段代码做到了
`private fun hideSystemUI() {
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN)
}
private fun showSystemUI() {
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)`
Run Code Online (Sandbox Code Playgroud)
但我的屏幕上有一个摄像头,我看到一个 黑条。如何拉伸屏幕以使该栏不存在
Kotlin 编程语言 非常感谢
我想在用户锁定设备后立即在 Android 外观屏幕上显示一份简短的调查问卷。为此,我检测屏幕锁定事件并显示带有全屏意图通知的活动。
val fullScreenIntent = Intent(context, destination)
fullScreenIntent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY or
Intent.FLAG_ACTIVITY_CLEAR_TASK or
Intent.FLAG_ACTIVITY_CLEAR_TOP or
Intent.FLAG_ACTIVITY_NEW_TASK
val fullScreenPendingIntent = PendingIntent.getActivity(context, 0, fullScreenIntent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT)
val builder = NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_logo)
.setContentTitle(title)
.setContentText(description)
.setFullScreenIntent(fullScreenPendingIntent, true)
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setCategory(NotificationCompat.CATEGORY_ALARM)
with(notificationManager){
createNotificationChannel()
val notification = builder.build()
notify(NOTIFICATION_ID, notification)
}
Run Code Online (Sandbox Code Playgroud)
为了让活动显示在外观屏幕上,我在OnCreate调查问卷活动的方法中执行此操作:
fun Activity.turnScreenOnAndKeyguardOff() {
setShowWhenLocked(true)
setTurnScreenOn(true)
with(getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager) {
requestDismissKeyguard(this@turnScreenOnAndKeyguardOff, null)
}
}
Run Code Online (Sandbox Code Playgroud)
在清单中:
<activity
android:name="com.example.trackingapp.activity.LockActivity"
android:exported="true"
android:launchMode="singleTop"
android:showOnLockScreen="true"
android:excludeFromRecents="true"/>
Run Code Online (Sandbox Code Playgroud)
这适用于 Android 9、10 和 11 以及某些 Android 12 (Pixel 3) …
android fullscreen lockscreen android-notifications keyguard
我正在研究一个简单的Java游戏引擎,并且没有FSEM,缓冲策略等问题; 我的问题是用鼠标光标.在窗口模式下,我可以隐藏鼠标光标,没问题,可以使用我的JFrame中的setCursor()来设置一个完全透明的光标.但是,在调用device.setFullScreenWindow(this)进入FSEM后,鼠标光标返回,后续调用setCursor()将其设置回我的空白光标无效.调用device.setFullScreenWindow(null)允许我再次摆脱光标 - 只有当我在FSEM中时才能摆脱它.
我在JDK 6下工作,目标平台是JDK 5+.
更新:我已经做了一些更多的测试,看起来这个问题出现在Mac OS X 10.5 w/Java 6u7下,但不是在带有Java 6u7的Windows XP SP3下.因此,它可能是Mac版JVM中的一个错误.
fullscreen ×10
android ×3
html ×3
javascript ×2
java ×1
keyguard ×1
kiosk-mode ×1
kotlin ×1
lockscreen ×1
mouse ×1
mouse-cursor ×1
pysimplegui ×1
python-3.x ×1
safari ×1
statusbar ×1
swift ×1
swiftui ×1
video ×1