1
我开发了一个简单的Android应用程序,它包装一个WebView以连接到apprtc.appspot.com。 WebRTC会话建立成功,视频流显示在应用程序和对等体(Mac上的Chrome浏览器)中,音频可以在应用程序中听到,但Mac不会收到任何音频。在Mac的Chrome浏览器上显示chrome:// webrtc-internals,显示没有错误。 WebRTC从Android设备中的Chrome浏览器到Mac中的Chrome浏览器可以很好地处理音频。我还在应用程序中编写了一个测试活动,以使用成功捕获和播放音频的MediaRecorder和MediaPlayer。WebRTC在Android应用程序中无WebView中的音频
我的权限设置貌似
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.audio.low_latency" />
<uses-feature android:name="android.hardware.audio.pro" />
<uses-feature android:name="android.hardware.microphone" android:required="true"/>
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.front" android:required="true" />
该应用程序的代码看起来像
int permission;
permission = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO);
if (permission != PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.RECORD_AUDIO)) {
// Show an expanation to the user *asynchronously* -- don't block
} else {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.RECORD_AUDIO},
MY_PERMISSIONS_REQUEST_AUDIO);
}
}
// ... similar camera permission request ...
WebView webView = (WebView) findViewById(R.id.web_view);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onPermissionRequest(PermissionRequest request) {
request.grant(request.getResources());
}
});
webView.loadUrl("https://appr.tc/r/my-room");
错在何处?