0

我正在尝试构建一个远程呈现系统:其中一部分是带有摄像头、小屏幕和电机的树莓派。另一部分是带有我的 android 应用程序的智能手机。两者都连接到互联网并可以访问同一个 jitsi 会议室:https ://meet.jit.si/fußballLive2020Uebertragung1

这个想法是你可以把覆盆子放在某个地方,比如在你家里。然后从您的智能手机中,您可以看到覆盆子相机可以看到的内容,并且智能手机中的视频会传输到覆盆子屏幕,这样您的家人也可以在您在其他地方时看到您并与您交谈。此外,我希望您能够将 rasberry 相机从您的智能手机左右移动。

智能手机应用程序现在看起来像这样,顶部有 jitsi 视图,左右两个按钮:

我现在的应用

从智能手机向覆盆子电机发送“左”和“右”命令已经可以了,但是视频和音频总是被禁用,当我点击相机或麦克风按钮(上图中红色圈出)时,我得到了错误:Error obtaining camera permission或 È获取麦克风权限时出错`。当我启动应用程序时,我还可以从我的树莓派中看到应用程序用户加入了房间:

从覆盆子侧看

在 android 清单中,我要求以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

当我第一次启动该应用程序时,它还要求我提供互联网、摄像头和麦克风权限,在我的手机设置中,我可以看到它们已启用。我还将apk加载到我的真实手机中,看看它是否是模拟器的问题。

我的 MainActivity.java:

package com.example.quarantina;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

public class MainActivity extends AppCompatActivity {
private static final int MY_CAMERA_REQUEST_CODE = 100;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView webview = findViewById(R.id.webview);
    webview.getSettings().setJavaScriptEnabled(true);
    String newUA=  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10 7 4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13";
    webview.getSettings().setUserAgentString(newUA);  // this is necesarry, because jitsi blocks requests from mobile phones, so we make it look like where on a PC
    webview.setWebViewClient(new WebViewClient());
    webview.loadUrl("https://meet.jit.si/fußballLive2020Uebertragung1");
}

(按钮的代码在这里不相关,所以我没有添加)

我知道我可以通过在手机上的浏览器中打开链接并使其请求桌面版本来加入聊天。但是对于我的项目来说,将它们全部结合到我自己的应用程序、聊天和控制电机的两个按钮中是非常重要的。

4

0 回答 0