The volume slider for WebRTC on Chrome for Android malfunctions when utilizing the microphone

When trying to establish a WebRTC connection with both video and microphone input/output on Chrome for Android, I encounter an issue when adjusting the volume using hardware keys. The volume being shown is for the STREAM_VOICE_CALL stream, which is not appropriate for handling WebRTC audio. This complicates the user's ability to effectively adjust the volume.

My assumption is that this confusion occurs because enabling the microphone (via getUserMedia) triggers the system to treat it as a call scenario.

Does anyone have suggestions on how to resolve this issue? Is this expected behavior or a bug in Chrome?

Thank you

Answer №1

So this is the current structure? According to chromium issue 243506, it states:

Enable audio volume control on Android.

This involves setting the stream to VOICE, which is the only stream type that automatically connects to volume control. It's crucial to match the audio mode and stream type for the volume control to function properly. This means using the same mode for both WebAudio and WebRTC. This results in a modification in the audio_manager_android.cc file, where the audio is set to communication mode so that OpenSL stream can utilize the VOICE stream type for volume adjustment.

Bold emphasis added by me.

(https://code.google.com/p/chromium/issues/detail?id=243506)

Answer №2

It appears that the issue has been resolved in the most recent update of Chrome.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Sending data through AJAX

I am currently working on a calendar project. I want to include a description box next to the calendar, where additional information about an event will be displayed when a user clicks on a specific date. Here is what I have so far in terms of HTML/PHP: ...

Guide for displaying an image exclusively on the front side of a JSON model object using Three Js

Hey there, I've been working on rendering an image onto a model object using a JSON file. While I've successfully rendered the model itself, I'm facing an issue with getting the image to render from the JSON file. var loader1 = new THREE.As ...

Error encountered with Jquery script: "Unauthorized access"

I'm currently working on a script that involves opening a child window, disabling the parent window, and then re-enabling the parent once the child window is closed. Here's the code snippet: function OpenChild() { lockOpportunity(); if (Clinical ...

Leverage the power of personalized SCSS styles in combination with Bootstrap-Vue, Webpack, and

I have been working on an application using VueJS with Bootstrap-Vue and I encountered a challenge while trying to import a SCSS file to customize the Bootstrap variables and add some custom styles. Here are the steps I have taken so far: Installed node ...

Prevent individual elements from shifting around on browser resizing within a React form

Having issues with a React form that includes an image gallery and input fields. import React, { Component } from 'react'; import ImageGallery from 'react-image-gallery'; import { Container, Row, Col, InputGroup, Button, FormControl, ...

Submission method of a stateless component in Redux form

Should I keep this component stateless or should I convert it to a stateful component? import React from "react"; import { Field, reduxForm } from "redux-form"; import { connect } from "react-redux"; import RaisedButton from 'material-ui/RaisedButton ...

JavaScript content templating

While developing a social network, I made the decision to retrieve ajax responses in Json format instead of html. My plan is to use Handlebars.js or another similar templating system to convert this Json into html. However, I'm facing a challenge: I ...

Utilizing the {{value}} parameter within the JavaScript block of the thinger.io HTML gadget

When creating an HTML widget with JavaScript code on the thinger.io Dashboard, you can easily include data from the "thing" by using {{value}} within HTML tags. However, incorporating this data into a JavaScript block poses a challenge. Example of a Pure ...

Transform an object in javascript to HTML format

Looking for a function to convert a JavaScript object of this type: {node: 'X', children: [{node: 'Y'}]} into a string resembling HTML. For instance, the example above should be transformed to something like: '<div class="X ...

Tips for utilizing Vue.js scoped styles with components that are loaded through view-router

I want to customize the styling of Vue.js components loaded through <view-router> using scoped styles. This is the code I have: <template> <div id="admin"> <router-view></router-view> </div> </template> ...

What measures can be taken to keep the rightmost element from moving when hovered over?

While I am generally happy with the layout, there seems to be a slight jump to the left when hovering over the right-most image (you need to click "show images" to view them). Strangely, this issue does not occur with the last row of images. Any suggestion ...

What is the best way to terminate a MongoDB client connection in the event of an error?

I am currently managing a configuration where I have set up a MongoDB instance and operating two JavaScript services on a Linux server. One of the services, moscaService.js, is responsible for listening to MQTT topics on the server and storing the incoming ...

Issues with data communication in AJAX and Node JS/Express post requests

I'm currently exploring Node.js and I'm running into an issue with app.post. Everything seems to be working fine, as I can see the console log whenever the action is executed. However, the data sent by AJAX from main.js does not seem to be receiv ...

Trouble ensues when using a scaled THREE.Sprite with THREE.Raycaster

My goal is to implement the use of THREE.Raycaster in order to display an html label whenever a user hovers over an object. The functionality works properly when using THREE.Mesh, however, with THREE.Sprite, I am noticing a strange spacing issue that seems ...

Guide on incorporating a Node.js module by utilizing a relative path in Electron-builder

I have a Node.js module which is required using this code: var parse = require("csv-parse/lib/sync"); The issue arises when my project is built using Electron-Builder and NSIS, as the module cannot be located. This is probably because the file path chang ...

Creating a unique AngularJS custom directive that utilizes ng-options can be achieved by populating

I've encountered a major roadblock in my project, and despite my efforts to troubleshoot, I can't seem to find the solution. The issue revolves around populating options within an ng-options directive through a service. This directive is nested i ...

Remove a comment from the page without needing to refresh the entire

Is there a way to enhance this code so that when a comment is deleted, the page does not refresh? It can be frustrating when deleting a comment causes the page to scroll back to the top. AJAX function deleteComment(pid){ $.ajax({ type: "PO ...

Tips for waiting for an HTML element to load in a Selenium JavaScript testing script

I'm struggling to find a way to wait for an element to load in a javascript selenium test script. The closest thing I've come across is until.elementLocated, but it seems to throw an immediate exception. Is there a method to delay throwing the " ...

Updating the KML data on Google Maps V3 for a fresh look

I recently updated a map from V2 to V3 and I am working on incorporating code to automatically refresh the KML data every 30 seconds. The goal is to update the map with the latest data and display a countdown until the next refresh. Here is an example of ...

Setting a View's width relative to the screen size

I need to dynamically adjust a View's width based on the screen size. The goal is to set the width of the view to a percentage of the screen width, ranging from 0 to 100. To achieve this, I am retrieving the screen width in density-independent pixels ...