2013-05-22 1 views
1

다른 피어에서 mp3 파일을 게시하고 RTMFP 채팅 앱과 매우 유사하게 만들고 싶습니다. 내가 지금까지 뭘 이해에서Netstream - RTMFP를 사용하여 mp3 파일을 게시하는 방법

:

  1. netstream.publish 다른 동료로부터 스트림을 재생하기위한 RTMFP의에서 NetConnection에 스트림과 netstream.play를 게시하는 데 사용됩니다.
  2. 마이크 및 카메라 캡처를 스트리밍하는 단계는 다음과 같습니다.
    netstream.attachCamera (cam);
    netstream.attachAudio (mic);
    netstream.publish ('video');
  3. 그러나 Netstream을 사용하여 mp3 파일을 스트리밍하는 방법은 없습니다. 청중에게 오디오를 "게시"하고자하기 때문에 Netstream을 사용해야합니다.

위의 내용이 잘못 되었다면 나를 바로 잡으십시오. 이상적으로 내가 성취하고자하는 것이 쉽게 가능해야하지만, 그것에 대한 어떠한 조언도 찾을 수 없다. 동일하게 ByteArray를 사용할 수 있습니까? 다른 스트리밍 전략은 RTMFP와 함께 작동하는 한 환영받을 수 있습니다. 코드 예제에 대한 링크도 훌륭합니다.

+0

NetStream 게시를 사용하여 수행 할 수 없다고 생각합니다. 또 다른 솔루션은 ByteArray를 사용하여 mp3를 업로드하고이 파일을 서버에 저장 한 다음 수신 대기중인 피어의 netstream을 사용하여 재생합니다. 그러나 큰 지연이있을 것입니다. – fmodos

답변

5

NetStream의 이상한 단점 중 하나를 발견했습니다. 마이크에서 사운드를 게시 할 수 있지만 임의의 사운드 소스에서 사운드를 게시 할 수는 없습니다. 다른 해결 방법보다 복잡한 몇 가지 해결 방법이 있습니다.

  • 가상 마이크를 통한 스트리밍. 가장 쉬운 해결 방법이며, 프로젝트에서 사용할 수있는 경우 가장 좋습니다 (IMO). 가상 마이크/카메라 소프트웨어 (예 : ManyCam)를 설치하고 가상 마이크를 통해 mp3 파일을 스트리밍하면됩니다. 이렇게하면이 마이크를 AS3 앱에 연결하면됩니다. 안타깝게도 게시자가 가상 ​​마이크를 설치하도록 합리적으로 요청할 수 없으므로 프로젝트에 적합하지 않습니다.

  • Sound.extract(), NetStream.send()SampleDataEvent.SAMPLE_DATA을 사용한 스트리밍. 아시다시피, 동료에게 메시지를 보내려면 NetStream.send()을 사용할 수 있습니다. 것은, 그 메시지는 직렬화되고 ByteArray 일 수있다이다. 따라서 NetStream.send()으로 오디오 데이터 샘플을 보낼 수 있습니다. 게시판 오 앱은 Sound.extract()으로 데이터 샘플을 얻을 수 있으며 수신 앱은 SAMPLE_DATA 이벤트 덕분에 재생할 수 있습니다. 문제 중 하나는 새로운 샘플을 언제 보내야 하는지를 아는 것입니다. 이를 관리하려면 게시 앱에서 SAMPLE_DATA을 사용하고 SAMPLE_DATA 이벤트가 발생할 때마다 새 데이터를 보내도록 권하는 것이 좋습니다. 이 방법의 주요 문제점은 오디오를 스트리밍하는 데 RTMP 표준 방법을 사용하지 않으므로 수신기에서 재생할 수있는 사용자 정의 앱이 필요하다는 것입니다. 당신이 프로젝트에 대해 말한 것을 생각해 볼 때, 그것은 문제가되어서는 안됩니다.

  • Socket을 사용하여 RTMFP 프로토콜을 재생산합니다. 길고 복잡하며 오류가 발생하기 쉽습니다. 저는 아마도 학습 경험으로 만 이것을 제외하고는 권장하지 않습니다. RTMFP Specification의 대부분을 읽고, 이해하고 구현해야합니다.

+0

설명해 주신 Sound.extract() 메소드의 실제 예제가 있습니까? –

관련 문제