gpt4 book ai didi

java - 使用 MediaRecorder 在 Android 上录制屏幕时无法获取 Surface

转载 作者:太空狗 更新时间:2023-10-29 14:45:56 30 4
gpt4 key购买 nike

我想录下我的手机屏幕。当我在 API 23 上测试它时它工作正常但是当我在 api 22 上测试代码时它无法获得表面,但代码在 android marshmallow 上运行良好。

private VirtualDisplay createVirtualDisplay()
{
return mMediaProjection.createVirtualDisplay("MainActivity",
DISPLAY_WIDTH, DISPLAY_HEIGHT, mScreenDensity,
DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
mMediaRecorder.getSurface(), null /*Callbacks*/, null
/*Handler*/);
}

上收到错误

mMediaRecorder.getSurface()

这是错误 enter image description here 的屏幕截图

最佳答案

我遇到了同样的问题。授予运行时权限。

if (ContextCompat.checkSelfPermission(TestInstructions.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ ContextCompat.checkSelfPermission(TestInstructions.this,
Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(TestInstructions.this,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|| ActivityCompat.shouldShowRequestPermissionRationale(TestInstructions.this,
Manifest.permission.RECORD_AUDIO)) {
Snackbar.make(relativeLayout, R.string.label_permissions, Snackbar.LENGTH_INDEFINITE)
.setAction("ENABLE", new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCompat.requestPermissions(TestInstructions.this, new String[] {
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO },
REQUEST_PERMISSIONS);
}
}).show();
} else {
ActivityCompat.requestPermissions(TestInstructions.this,
new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO },
REQUEST_PERMISSIONS);
}
}

它将解决您的问题。

关于java - 使用 MediaRecorder 在 Android 上录制屏幕时无法获取 Surface,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40240748/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com