2012-05-07 3 views
0

내가하는 AS 라이브러리에서 오디오 데이터를 얻기 위해 노력하고있어 문서에서 함수가 다음과 같이됩니다 :읽기 바이트 (자바 스크립트)

내 코드 사이에서
protected function audioData():String 
     { 
      var ret:String=""; 
      buffer.position = 0;     
      while (buffer.bytesAvailable > 0) 
      { 
       ret += buffer.readFloat().toString() + ";"; 
      } 
      return ret; 
     } 

이 라이브러리는 다른 것입니다 이 코드가 JS : 내 코드에서

audioData: function(){ 
    return this.flashInterface().audioData().split(";"); 
    }, 

내가 이런 액세스 : 그러나

function getdata(){ 
    var data = Recorder.audioData(); 
    console.log("audioData: " + data); 
    } 

, 나는 t을 시도 o 반환 값을 Firebug에 출력한다. 쉼표로 구분 된 매우 긴 부동 소수점 값 목록을 얻는다. byte [] 버퍼를 어떻게 되 찾을 수 있을까? 내가 버퍼의 의미는 Java와 비슷합니다. JSNI을 통해 Java의 버퍼에 액세스 할 것이기 때문입니다.

여기 (실제 로그 매우 긴) 샘플 로그 출력 같습니다

-0.000305175781250.000061035156250.001159667968750.00146484375, -0.00091552734375, -0.000946044921875, -0.001983642578125, -0.003997802734375, -0.005126953125 - 0.00360107421875, -0.0032958984375, -0.004119873046875, -0.00433349609375, -0.0023193359375, -0.0008544921875, -0.003448486328125, -0.00347900390625, -0.0054931640625, -0.0067138671875, -0.005279541015625, -0.006072998046875,

I는 AS를 재 컴파일 할 수 없다 일 }에서 출력을 생성합니다. 이제 할 수있는 일은 자바 스크립트에서 SWF 구성 요소와 인터페이스하고 부동 소수점을 받아 바이트 배열로 다시 변환하는 것입니다. FDT 5 IDE의 AS 프로젝트에 너무 많은 오류가있어 이미 내 응용 프로그램의 모형을 작성해야합니다.

정말 필요에 따라 AS 라이브러리를 다시 컴파일하고 싶지만 지금은 그대로 사용하고 싶습니다.

+0

당신이 writeMultiByte에 모습을 찍은 적이 :이 같은 뭔가 POST 요청을 사용하여 서버의 URL로 바이트 배열을 보낼 수있을 것

? http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/ByteArray.html#writeMultiByte%28%29 – francis

+0

마음에 드시면이 게시물의 관련 문제에 대해 저를 도울 수 있습니다. http://stackoverflow.com/questions/10494006/bytearray-issue-with-actionscript-project – xybrek

답변

1

당신은 당신이를 사용할 수 있습니다 바이트 배열의 실제 바이트 데이터를 보려면 : AS3에서 ByteArray 클래스는 바이트 배열 (이름에서 알 수 있듯이 :))을 이미 AFAIK

protected function audioData():String 
{ 
    var ret:String=""; 
    buffer.position = 0;     
    while (buffer.bytesAvailable > 0) 
    { 
     ret += buffer.readByte().toString(); 
    } 
    return ret; 
} 

을 byteArray [0]에서 첫 번째 바이트를 제공하므로 [] 연산자를 사용하여 데이터에 액세스 할 수 있습니다.

var request:URLRequest = new URLRequest ("http://someurl"); 
var loader: URLLoader = new URLLoader(); 
request.contentType = "application/octet-stream"; 
request.method = URLRequestMethod.POST; 
request.data = byteArray; 
loader.load(_request); 
+0

지금 당장은 자바 스크립트에 임베드 된 SWF 파일로 AS 라이브러리에 액세스하고 있으므로 자바 스크립트를 통해 내 액세스는 – xybrek

+0

어쨌든, 내가 제안한 코드로 라이브러리 소스를 컴파일하려고 시도 할 것이다. – xybrek

관련 문제