繁体   English   中英

在 Android 应用程序中进行屏幕录制时防止录音

[英]prevent audio recording while screen recording in Android apps

我正在开发一个安全的应用程序,我正在限制另一个应用程序来记录我的应用程序的时刻(如视频)。

该认为我限制了我的应用程序的屏幕捕捉(双屏幕截图和视频录制)的规定在这里,但我不能能够限制我的应用程序的视频的音频。

   @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    setContentView(R.layout.activity_main);
    playVideo();
    //callAPI();
}

屏幕捕获后,我无法看到视频(显示黑屏),但我可以听到音频。

请帮助我摆脱这种情况。

提前致谢

在活动中使用“安全标志”。 安全标志可防止屏幕记录捕获等。

super.onCreate(savedInstanceState); 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SECURE);

您必须首先检测到录制开始

您可以通过注册显示侦听器来实现此目的


 val displayManager = getSystemService(Context.DISPLAY_SERVICE) as? DisplayManager
        displayManager?.registerDisplayListener(listener, null)
       

    val listener = object : DisplayManager.DisplayListener {
        override fun onDisplayChanged(displayId: Int) {
            
        }

        override fun onDisplayAdded(displayId: Int) {
            
            // here stop video player 
        }

        override fun onDisplayRemoved(displayId: Int) {
          
        }
    }

FLAG_SECURE将使屏幕录制记录一个空白屏幕

提示:这种方式仅在活动处于前台时开始录制时才有效

更新 1

下一个解决方法将适用于 android 10 之前的大多数第三方录制应用程序:

通过使用AudioManager使麦克风静音,因为这些应用程序使用麦克风

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM