2016-06-16 78 views
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"); 

錯在何處?

回答

3

在權限中添加<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />解決了我的問題。

相關問題