getUserMedia에서 스테레오 입력이 모노로 변환되는 현상 방지
무슨 현상?
getUserMedia를 사용하여 브라우저에서 오디오를 가져올 때,
원래의 음성은 스테레오인데, 취득 후의 음성이 모노로 합성되어 버린다.
구체적으로는 아래 그림과 같이
스테레오의 입력 음성(Input)을 getUserMedia로 취득한 음성(streamData)은,
입력 음성의 LR이 모노 합성된 음성이 2ch로 나온다는,
정말 유감스러운 결과가 된다.
WebChat과 같이 헤드셋에서 모노로 오디오를 입력하면 문제가되지 않지만,
음악 데이터를 스테레오 입력하는 경우 등은 모노럴 합성되어 버리면 곤란할 수 있다.
이유
getUserMedia에는 에코 캔슬러 기능이 갖추어져 있는 것 같다.
이것이 기본적으로 켜져 있으며,
에코 캔슬러 동작의 전단에서 스테레오 입력이 모노로 변환되어 버린다고 한다.
회피 방법
getUserMedia의 constraints에,
에코 캔슬러를 무효화하는 설정을 추가하면 OK.
sample.js // constraints
var constraints = {
video: false,
audio: { echoCancellation: false } // エコーキャンセラ無効化
};
// constraints (Chrome)
if (window.chrome) {
var constraints = {
video: false,
audio: {mandatory: {echoCancellation : false, googEchoCancellation: false}}
};
}
// Initialize getUserMedia
navigator.getUserMedia = ( navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.getUserMedia) {
navigator.getUserMedia (
constraints,
// successCallback
function(stream) {
var source = context.createMediaStreamSource(stream);
},
// errorCallback
function(err) {
alert('The following error occurred: ' + err);
}
);
} else {
alert('getUserMedia not supported');
}
참고
Reference
이 문제에 관하여(getUserMedia에서 스테레오 입력이 모노로 변환되는 현상 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yakan10/items/f688af6fb183c1d7a7b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
getUserMedia에는 에코 캔슬러 기능이 갖추어져 있는 것 같다.
이것이 기본적으로 켜져 있으며,
에코 캔슬러 동작의 전단에서 스테레오 입력이 모노로 변환되어 버린다고 한다.
회피 방법
getUserMedia의 constraints에,
에코 캔슬러를 무효화하는 설정을 추가하면 OK.
sample.js // constraints
var constraints = {
video: false,
audio: { echoCancellation: false } // エコーキャンセラ無効化
};
// constraints (Chrome)
if (window.chrome) {
var constraints = {
video: false,
audio: {mandatory: {echoCancellation : false, googEchoCancellation: false}}
};
}
// Initialize getUserMedia
navigator.getUserMedia = ( navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.getUserMedia) {
navigator.getUserMedia (
constraints,
// successCallback
function(stream) {
var source = context.createMediaStreamSource(stream);
},
// errorCallback
function(err) {
alert('The following error occurred: ' + err);
}
);
} else {
alert('getUserMedia not supported');
}
참고
Reference
이 문제에 관하여(getUserMedia에서 스테레오 입력이 모노로 변환되는 현상 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yakan10/items/f688af6fb183c1d7a7b8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// constraints
var constraints = {
video: false,
audio: { echoCancellation: false } // エコーキャンセラ無効化
};
// constraints (Chrome)
if (window.chrome) {
var constraints = {
video: false,
audio: {mandatory: {echoCancellation : false, googEchoCancellation: false}}
};
}
// Initialize getUserMedia
navigator.getUserMedia = ( navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.getUserMedia) {
navigator.getUserMedia (
constraints,
// successCallback
function(stream) {
var source = context.createMediaStreamSource(stream);
},
// errorCallback
function(err) {
alert('The following error occurred: ' + err);
}
);
} else {
alert('getUserMedia not supported');
}
Reference
이 문제에 관하여(getUserMedia에서 스테레오 입력이 모노로 변환되는 현상 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yakan10/items/f688af6fb183c1d7a7b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)