파일 저장 완료 후 약속 추가

5453 단어 react-native-audio

묘사

여보세요, 점원!
만약 내가 자동으로 파일을 서버에 보내려고 시도한다면, 나는 녹음을 중지할 것이다. 파일 크기는 0 이다.
파일을 audioPath에 저장하고 서버에 보낼 수 있도록 약 1초를 기다려야 합니다.이런 상황에서 그것은 효과적이다.
let audio = {
    uri: audioPath,
    type: 'audio/aac',
    name: 'audio.aac'
};

let body = new FormData();
body.append('audio', audio);

xhr.open('POST', 'http://xxxx.com/xxx.php');
xhr.send(body);
만약 내가 호출 AudioRecorder.stopRecording(); 한 후에 이 코드를 실행한다면, 그것은 작동할 수 없을 것이다.
나는 코드를 함수에 넣고 setTimeout(xxx, 2000);로 호출해야 한다
그렇게 지도 모른다, 아마, 아마...
AudioRecorder.stopRecording().then(function(){
    // here send the tile to my server
});
만약 시간이 없다면, 이 행동을 추가하고 오디오 예시에서 PRAudioRecorder.stopRecording()을 보낼 수 있다고 말씀해 주십시오.js 파일은 오디오 파일을 장치의 어디에 저장합니까?

토론 #1

죄송합니다. 저는 항상 바빠서 이 모듈을 사용하지 않았습니다.수시로 공관을 제출하세요!

토론 #2

Objective-C와 자바 안드로이드를 몰라요.
: 어깨를 으쓱:

토론 #셋

다른 함수에서 어떻게 했는지 검사하고 있습니다.
알아볼게요.
아마도 며칠 후에 나는 공관을 제출할 수 있을 것이다.
만약 내가 스스로 할 수 있다면, 나는 Stack Overflow에서 도움을 청할 것이다.
고마워

토론 #4

안드로이드 시스템에서 이 문제를 겪었는데,
나는 파일을 업로드할 수 없다. 왜냐하면 그것은 저장되지 않았기 때문이다.

토론 #5

@chrisijoyah 파일은

토론 #6

통화에서 제공한 경로에 저장됩니다.이 프레젠테이션은 다음과 같습니다.
  • here, 예시 응용 프로그램이 경로를 결정한다
  • here, 그 중에서 경로는 최종적으로 녹음기의 인터페이스에 제공된다.
  • AudioRecorder.prepareRecordingAtPath 미래의 홍보를 위해 지금 이걸 끝내자!

    토론 #7

    @tomprogers 네, 어디에 저장하는지 알지만'약속어음 사용'과는 무관합니다.
    예를 들겠습니다.
    *콜 스톱 녹음
    *서버에 파일을 전송하려고 합니다.
    그러나 장치가 바쁘다고 가정해 보자. 파일을 저장하는 데 500밀리초 이상이 걸린다.
    te 파일을 서버에 보내려고 시도할 때, 이 파일은 저장되지 않았기 때문에 존재하지 않습니다.
    이것이 바로 우리가 문서 보존이 완료되는 순간에 어떤 문제를 해결해야 하는지에 대한 약속이 필요한 이유이다.
    내 말은'JS 약속'이다.나는 우리가 이곳에서 약속을 이행해야 한다는 것에 동의한다.만약 다른 사람이 먼저 알지 않았다면, 나는 조사할 것이다.

    토론 #8

    정말 해봤어요. 그런데...Objective-C와 자바에 대해 아무것도 몰라요:/

    토론 #9

    무슨 소식이 있습니까?

    토론 #10

    @NoelBroda는

    토론 #11

    리셋을 사용하고 있습니까?

    토론 #12

    는 비동기적이기 때문에

    토론 #13

    를 가져올 때까지 이 파일에 접근할 수 없습니다.작동 방법example app을 참조하십시오.AudioRecorder.onFinished'기록이 완성되었을 때'와'파일이 저장되었을 때'사이에 차이가 존재한다.
    오래된/속도가 느린 장치를 시뮬레이션하고 있습니다. AudioRecorder.stopRecording 이벤트는 파일이 장치에 완전히 저장되기 전에 실행됩니다.onFinished@NoelBroda는 애플이 iOS에 빈틈이 있을 수 있습니다.다음은 그들

    토론 #14

    documentation이 이룬here이다.이 코드는 onFinished 이벤트를 보내는 코드입니다.
    나는 어떤 API가 파일이 저장되었는지 확인할 수 있는지 모르겠지만, 우리는 더 좋은 API를 사용할 수 있습니다.

    토론 #15

    나는 우리가 이 방면의 API를 찾을 수 없다고 생각한다.AVFoundation은 간단하지만 제한되어 있습니다.@NoelBroda가 제안한 바와 같이, 이 방법의 다른 선택은 자바스크립트에서 파일 크기를 0이 아닌 값으로 돌아가고 돌아올 때까지 돌아가는 방법을 제공할 수 있습니다.이것은 결코 이상적이지는 않지만, 이 문제를 해결할 수 있다.현재, 이 문제를 해결하기 위해, 윤문audioRecorderDidFinishRecording 값이 0이 아닌 값으로 돌아올 때까지 사용할 수 있어야 합니다.onFinished 실제로 이런 행위도 실패할 수 있다.
    파일 상태를 확인하는 데 실패하지 않을 것입니다.파일이 쓰기 중인 경우 SO는 쓰기 중인 프로세스가 완료될 때까지 해당 파일을 차단해야 합니다.
    근데 또 다른 문제가 있어.만약 이 기록기가 먼저 파일 (예를 들어 linux의

    토론 #16

    을 만들고 그것을 기록한다면?만일 우리가 터치와 쓰기 시작하는 사이의 상태를 검사한다면, 우리는 또 다른 가짜 양성이 있을 것이다.
    예를 들어, 네이티브 recordar에서 다음 작업(위조 코드)을 수행한다고 가정합니다.
    xxx.stopRecording().then(function() {
        // send the file to the server.
    });
    
    만약 이 줄들의 중간 검사 상태 (우리가 토론한 것은 비동기적인 문제) 라면 오보가 발생할 것이다.
    그래서 우리가 해야 할 일은 이런 일(위조 코드):
    create_file('audio.xxx');
    put_content_into_file('audio', theContent);
    
    나는 이것duration이 결코 성능이 가장 좋은 것이 아니라는 것을 알고 있지만, 나는 단지 여러분에게 위조 코드를 보여주고 싶을 뿐이다.
    (내 영어에 미안하지 않다)

    토론 #17

    네, 이런 일은 듣기에 매우 합리적입니다.나는 그것을 처리할 대역폭이 없다. 그래서 누군가가 그것을 해결할 수 있기를 바란다.touch 이 문제나 이런 것들을 남겨두고 다른 사람이 해결하는 게 어때요?while() 이 문제를 고려해 주세요.

    토론 #18

    헤이@NoelBroda,
    이것을 수정하고 있습니다. 잠시 후 테스트 링크를 보내드리겠습니다.

    토론 #19

    패치 하나로 PR을 열었어요⬆️ , 너는 나에게 그것이 네가 기대한 대로 효과가 있는지 없는지를 말해 줄 수 있니?
    파일 경로를 되돌려주겠다고 약속합니다.나는 네가 반드시 이 길을 견지하는 것에 신경을 쓰지 않을 때 이 점이 매우 유용하다는 것을 발견했다.

    토론 #20

    와!너무 빨라!
    감사합니다.
    다음 주에 나는 휴가를 갈 것이다.나는 4월 16일에 집에 돌아갈 것이다.집에 가는 주에 테스트할게요!
    다시 한 번 감사합니다!

    토론 #21

    네, 방학 잘 보내세요:)
    # 나와 쿠파카는 네가 돌아오기 전에 그것을 새로운 버전으로 통합할 수 있기를 바란다!
    건배!

    좋은 웹페이지 즐겨찾기