'진도 구독자' 에게 2진 기록 데이터 를 공개 하다
5690 단어 react-native-audio
묘사
나의 목표는 녹화할 때 웹소켓을 통해 2진 오디오 데이터를 방송하는 것이다.'progress 구독자'에게 보내는 데이터는
currentTime
만 포함된 것 같습니다.WebAudio APIScriptProcessorNode.onaudioprocess와 유사한 바이너리 오디오 데이터를 보낼 수 있습니까?그렇게 지도 모른다, 아마, 아마...어떠한 힌트나 피드백도 감격해 마지 않을 것입니다!
토론 #1
현재 포트cordova-plugin-audioinput가 로컬 응답을 하도록 노력하고 있습니다.이 플러그인은 "audioinput"이벤트를 구독할 수 있도록 해 줍니다. 사용자 형식에 따라 이 이벤트를 서버로 전송할 수 있습니다.
만약 내가 항상 이 컴퓨터의 코드를 생각하고 있다면, 나는pull 요청을 보내려고 시도할 수도 있다.약속이 없어!
토론 #2
헤이, 슈퍼 퀘스트,이렇게 하는pull 요청은 매우 좋으나, 본 컴퓨터에서 JS 라인에 대량의 서열화 데이터를 보내는 것은 무시할 수 없는 성능 대가를 가져올 수 있음을 기억하십시오.
만약 이 기기에서 일한다면, 이 기기의 라인에서 흐름 논리를 실행하는 것이 더 좋은 생각일 수도 있습니다.스트리밍 진행 상황을 JS 스레드에 알리기만 하면 됩니다.
안드로이드에서 AudioRecorderManager에 새로운 방법을 공개하거나 startRecording에 속성을 추가하는 것이 가장 직접적인 방법이다.
건배
토론 #셋
나는 성능 원가를 무시할 수 없지만 JS 라인에서 바이트 흐름을 얻고 싶다.나는 모든 기능이 완전히 JS에서 지원되어야 한다고 생각한다. 왜냐하면 이것은 RN의 최종 목표이고, 오디오 처리는 현재 모바일 기기에서 매우 가능하기 때문이다. (JS 라인에서도 마찬가지다.)또한 많은 응용 프로그램의 기본 구성 요소가 되었기 때문에 오디오 바이트 흐름은 지원할 만하다고 생각합니다.2016년까지 많은 음성 관련 API가 현재 공개적으로 방문할 수 있다. 예를 들어 구글의 음성 API와 실시간 미디어를 지원하는 IBM 왓슨 음성인식 등이다.@RakanNimer에서 언급한 바와 같이 개발자의 요구에 따라 이 기능을 선택적으로 사용할 수 있다면 더욱 좋습니다.참고로 안드로이드는 현재 진도 업데이트를 지원하지 않습니다. 주로 미디어 Recorder 클래스는 진도 업데이트를 지원하지 않고 미디어 Recorder 클래스는react native audio에 의존하기 때문입니다.
이를 실현하기 위해서는 기존 코드와 일치하지 않는 Audio Record 클래스가 아니라 Audio Record 클래스를 사용해야 합니다.이 라이브러리의 핵심을 바꾸지 않으면 이 특성을 지원하기 어렵다.iOS 쪽은요, 아세요?RN 및 안드로이드 코드만 읽을 수 있습니다.
토론 #4
및 RN 네이티브 코드는 네이티브 소스 코드에서 전달되는 ByteArray를 지원하지 않을 수 있습니다.로컬 코드에서 JS 코드로 전달하는 방법입니다.아마도 우리는 그것을 Base64로 인코딩해야 할 것 같습니다.토론 #5
관심 있는 사람이 있다면 공관이 잠시 끝나는 것을 보니 기쁩니다!토론 #6
녹화된 소리를 블록으로 나누어 다른 고객에게 방송할 방법이 있습니까?만약 지원되지 않는다면, 당신은 내가 어떻게 전환하는지 도와줄 수 있습니다.aac 파일을blob에 갑니까,arraybuffer에 갑니까?토론 #7
@rohitgoyal은 기본적으로 어떤 도서관도 사용할 수 없습니다.우리도 같은 문제가 있다.문제는 블록 스트리밍을 JS 사이트로 지원하는 라이브러리가 없다는 것입니다.또한 aac 파일을 디코딩할 라이브러리가 없습니다. 왜냐하면 react native의 JS에는 모든 라이브러리에 의존하는 오디오 상하문이 없기 때문입니다. (node와 현대 브라우저와 다르기 때문입니다.)우리는 파형 신호를 디코딩해야 한다. 그러면 너는 더욱 운 좋게 더 간단한 해결 방안을 찾을 수 있을 것이다. 그러나 Reacht native에서 오디오에 현재 확실히 문제가 존재한다.우리는현재 Cordova 플러그인을 react native에 이식하는 것을 고려하고 있지만, 우리도 이 분야의 전문가는 아니다.만약 다른 해결 방안이 있다면 우리에게 알려 주십시오.토론 #8
@MrLoh 당신의 말에 따르면 현재 소리를 녹음하고 socket을 사용하여 다른 사용자에게 방송하는 가장 좋은 방법은 무엇입니까?nodejs 서버의io?현재 나는 오디오를 중으로 녹음하는 것을 고려하고 있다.aac 형식을 베이스64로 인코딩하여 플러그인에 보낼 수 있습니다.하지만 베이스64를 디코딩할 수 없습니다.aac는 다른 고객에서 재생될 것입니다.
소리를 재생하려면 react native sound를 사용합니다.
토론 #9
@rohitgoyal은 당신의 n/de 인코딩이 오디오가 특정하지 않으면 오디오 상하문도 필요하지 않습니다. 저는 당신이 괜찮을 것이라고 생각합니다.그러나, 파일을 계속 작성하고 읽어야 하며, 파일을 블록으로 나누는 방법을 알 수 없습니다.react native의 js 엔진이 이렇게 부족해서 유감입니다.그러나, 이 기기에서 관련 작업을 수행하기 위해, react native의 js 엔진이 오디오에 있어서 상당히 나쁘기 때문에, 누군가가 정말로 코도바 플러그인을 이식해야 한다.현재 파일을 읽고 쓰는 해결 방안은 매우 비효율적이다.
토론 #10
@MrLoh 오디오별로 제공되지 않습니다.react native fs로 인코딩합니다.aac에서 base64 문자열단, react native fs는 디코딩을 지원하지 않습니다.aac.
베이스 64로 소리를 재생하는 방법을 아십니까? 아니면 베이스 64를 디코딩해서 돌아가는 방법을 아십니까?aac 어디 있어요?
토론 #11
@rohitgoyal 아니요, 맞아요. 저는 예전에 RN에서base64를 사용하지 않았어요.토론 #12
@rohitgoyal 저는base64가 특정한 인코딩 규칙을 가진 계획 문자열일 뿐이라고 생각합니다. 위의 참고 자료를 참고할 수 있을 것 같습니다.참고로, 내 응용 프로그램의 실현에서, 우리는 Writable Array를 사용하여 본 컴퓨터 코드를 처리하고, 이진 데이터를 JS 코드로 흐르게 한다.문제는 안드로이드 구현에서base64 인코딩/디코딩을 통한 전송이 제공하는 Write Laberaray보다 더 빠른 것 같다는 것이다(https://github.com/facebook/react-native/issues/10504#issuecomment-317035887).
토론 #13
@ohtangza이것은 매우 이상한 것 같다.녹화가 끝난 후에, 당신은 그룹을 블록으로 나누어 써 보았습니까?
만약 그렇다면, 너는 나에게 네가 어떻게 하는지 알려줄 수 있고, 아마도 나도 나의 뇌를 넣을 수 있을 것이다.
실시간 통신에 사용되는 로컬 웹rtc 라이브러리도 있습니다.그들이 어떻게 데이터를 유동적으로 전송하는지 보면 매우 유용할 것이다.
토론 #14
@ohtangza 코드를 공유할 수 있습니까?토론 #15
@rohitgoyal@MrLoh 여기서 코드를 볼 수 있습니다(https://github.com/hayanmind/react-native-audio/tree/feature/streaming-recording). 우리는 이걸로 요청을 할 계획이지만, 작가가 받아들일지 안 받아들일지는 확실하지 않다.우리 프로그램에서 오디오 흐름을 JS 코드로 전송하는 것은 매우 중요하기 때문에 우리는 그것을 실현했다.현재 이 일은https://github.com/ghsdh3409누가 내 동료야?만약 어떤 생각이나 피드백이 있다면 우리에게 알려 주십시오.아, 참고로, 우리는 이를progresssubscriber에 집적하지 않았습니다. 단지 우리는 다른 포트를 만들었을 뿐입니다. 왜냐하면 본 컴퓨터 코드에서 pcm 데이터에 접근하는 것은 이 라이브러리의 현재 실현에 적용되지 않기 때문입니다. (본 라이브러리 문제)토론 #16
@ohtangza 비밀번호는 무엇입니까?react native audio toolkit을 말씀하시는 건가요?토론 #17
@rohitgoyal 아, 안 맞아요.나는 위에 링크를 추가했다.그것은 여전히 진행 중이지만, 이진 흐름 기능은 작동할 수 있을 것이다.토론 #18
@ohtangza 안녕하세요, 당신의 지점은 어떻습니까(https://github.com/hayanmind/react-native-audio/tree/feature/streaming-recording), 언제 결합합니까?토론 #19
업데이트 있나요?토론 #20
React Native의 실시간 오디오 스트림에 진전이 있습니까?베이스 64 인코딩된 소리를 온라인으로 되돌릴 수 있지만 iOS에서 실행할 수 없는react 원본 오디오 기록 라이브러리를 발견했습니다.토론 #21
안녕하세요. @teslavitas의 문제와 같습니다.Reference
이 문제에 관하여('진도 구독자' 에게 2진 기록 데이터 를 공개 하다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/jsierles/react-native-audio/issues/138텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)