我正在尝试构建一个远程呈现系统:一部分是带有照相机,小屏幕和电机的树莓派。另一部分是带有我的Android应用程序的智能手机。两者都已连接到Internet并可以访问同一jitsi会议室:https://meet.jit.si/fußballLive2020Uebertragung1
想法是您可以将覆盆子放在某个地方,例如在您的家庭住宅中。然后,从智能手机中您可以看到树莓派相机可以看到的内容,并且智能手机中的视频将传输到树莓派屏幕上,因此您在其他地方时,家人也可以看到并与您交谈。 另外,我希望您能够从智能手机左右移动rasberry相机。
智能手机应用程序现在看起来像这样,顶部是jitsi视图,左侧和右侧是两个按钮:
从智能手机向树莓电机发送命令“左”和“右”已经可以使用,但是视频和音频始终处于禁用状态,当我单击相机或麦克风按钮(上图中的红色圆圈)时,我得到了错误:Error obtaining camera permission
或Èrror获得麦克风许可。启动应用程序时,我还可以从树莓派中看到该应用程序用户已加入会议室:
在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");
}
(按钮的代码在这里无关紧要,所以我没有添加)
我知道我可以通过在手机上的浏览器中打开链接并要求其使用桌面版本来加入聊天。但是对我的项目而言,将所有这些都结合在我自己的应用程序,聊天和两个用于控制电机的按钮上非常重要。