2013-01-23 3 views
1

음성 녹음을 재생하는 사용자 지정 플레이어가 있습니다 (오디오 만). 오디오 파일이 길면 NetStream 클래스가이를 찾지 않습니다. 16776 초 후 (04:39:36) NetStream 찾기 기능이 파일의 시작 부분부터 다시 시작된다는 것을 알았습니다. RIFF (리틀 엔디안) 데이터, WAVE 오디오, ITU G.711 A-법 -
: 나는 다른 형식 (된 Speex, WAV)/코드/비트 레이트를 시도16776 초를 초과하여 검색 할 수 없습니다.

package com.name.player 
{ 
    import flash.net.NetConnection; 
    import flash.net.NetStream; 
    ... 

    public class StreamingPlayer extends Sprite 
    { 
     public var maStream:NetStream; 
     ... 

     public function aFunction 
     { 
      maStream = new NetStream(maConnection); 
      maStream.inBufferSeek = true; // ==> Generates compile error: 
      //Error: Access of possibly undefined property inBufferSeek through a reference with static type flash.net:NetStream. 
      // [mxmlc] 
      // [mxmlc]    maStream.inBufferSeek = true; 
      // [mxmlc]     ^

      maStream.play('sName', 0, -1, true); 
      // Now try these (one at a time) 
      maStream.seek(16775); // Seeks to the desired position and plays the file till the end 
      maStream.seek(16776); // Seeks at second 0 (begining) 
      maStream.seek(16778); // Seeks at second 0 (begining) 
      maStream.seek(16780); // Seeks at second 3 
      maStream.seek(16786); // Seeks at second 9 
      maStream.seek(16796); // Seeks at second 19 
      ... 

     } 
     ... 
    } 
    ... 
} 

: 여기에 짧은 의사 코드는 모노 8,000 Hz에서
- RIFF (리틀 엔디안) 데이터, WAVE 오디오, 마이크로 소프트 PCM, 16 비트, 모노 44100 Hz의
- 오그 데이터, Speex가 오디오

파일 크기 또는 총 길이는 중요하지 않습니다, I 시도 시간은 1.1 - 1500MB 사이이며 04:40:00 (17000 초) - 14:56:41 (53801 초)입니다.

새 브라우저에는 html5를 사용하고 있지만 이전 브라우저 (새 클라이언트 소프트웨어를 설치할 수없는 일부 클라이언트 PC에서는 플래시가 이미 설치되어 있으므로 플래시 솔루션이 필요합니다)에 대한 지원이 필요합니다. 측면 IE6 :()을 따라 실행

Q :.
내가 뭔가 잘못을하거나 NetStreamer에 제한이, 어떤 솔루션 (들) 나는이 긴 플레이 할 수 있어야 할 존재하는 경우 수행 파일?

추신 : 이것은 플래시로 작업 한 첫 번째 작업이므로 좀 더 명시 적으로 시도해보십시오. 답변/의견.

편집 : 어도비 ID에서 추가 버그 3492103.

편집 :
나는 스트림 서버를 테스트 동료가 있고 그는 로그 intersting 뭔가를 발견

// This is lower than 16776 seconds, and works 
01-26 13:02:14.277 RtmpProtocol:891  [ID-007] Seeking to 1594380 
... 
01-26 13:02:14.279 FileReaderWav:194  [ID-007] <Stream0001> Seeking to 15943804 sf_seek 127550432 
... 
01-26 13:02:16.250 FileReaderWav:230  [ID-007] <Stream0001> Current position: 15943824 

// This is when it plays from the beginning (seeking after 16776 seconds) 
// according to the log it should just play at the desired position, but it's not 
01-26 13:02:23.294 RtmpProtocol:891  [ID-007] Seeking to 16990012 
01-26 13:02:23.303 FileReaderWav:194  [ID-007] <Stream0001> Seeking to 16990012 sf_seek 135920096 
01-26 13:02:23.463 FileReaderWav:230  [ID-007] <Stream0001> Current position: 16990032 

을 우리 migth는 스트림 서버, 일부 INTEGER 캐스팅 또는 이와 유사한 것에 문제가 있습니다. 더 많은 정보를 얻으면 업데이트 할 것입니다.

+0

문서에 17000+가 권장 값이 아니며 NetStream.seek()에 대한 버그가 기록되어 있지 않습니다. 아마도 새로운 것을 발견했을 것입니까?나는 많은 사용자가 그러한 긴 파일을 재생하려고 시도한 적이 없다는 것을 의심한다. –

+0

@LeeBurrows 버그를 채울 수있는 방법이 있습니까? AFAIK 플래시는 개발의 관점에서 어느 정도 죽었지 만, 그럼에도 불구하고 나는 그들에게 알려야한다고 생각한다. 여기 –

+0

버그를 제출할 수 있습니다 (https://bugs.adobe.com/). 그리고 플래시는 확실히 죽지 않습니다. 플래시 웹 사이트가 아닌 플래시 자체 일 수도 있습니다. –

답변

2

난 당신이 파일이 완전히 추구 원하는 위치로 버퍼링 경우 고려해야 할 생각 감사드립니다. STREAM 파일을 완전히로드하지 않은 상태에서 파일의 위치를 ​​찾으면 오류가 발생하거나 그냥 가지 않습니다.

SOLUTIONS :

(1) 파일을 보장은

(2) 원하는 시점에서에게 파일 봉사 PHP (또는 서버 측)을 사용하여 요청하기 전에 그 위치에 버퍼링된다. 이렇게하면 요청 된 데이터 만 전달되므로 대역폭에 대한 음을 줄일 수 있습니다.

예 : 요청한 파일이 1500MB인데 800-1500MB 만 필요하면 ... 그 위치에 파일을 제공하십시오.

+0

버퍼에 쉽게 들어갈 수있는 1.1 메가 비트 (ob) 파일을 생성했습니다. 똑같은 초에 똑같은 문제가 있습니다. 나는 그것이 NetStream의 버그라고 생각하는 경향이있다. 플래시가 더 많거나 적다는 것을 고려하면 수정되지 않을 것이다. –

+0

@RaduMaris Flash는 멀리 떨어져 있습니다. Apache의 업데이트 절차에 대해서는 잘 모르겠지만 문제/업데이트를 잘 처리 할 수 ​​있습니다. 귀하의 질문에, 그것은 아주 잘 버그 수 있습니다. 개인적으로 나는 파일을 분할하고 (대역폭을 절약하기 위해) 청크를 처리하는 경향이 있으므로 이것을 보지 못했습니다. 하지만 오늘 밤 이걸 시험해보고 내 연구 결과를 알려주지. 또한 [inBufferSeek]을 시도해보십시오.이 메서드는 데이터가 "스마트"스트림 (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/)에 대해 버퍼링되는지 여부를 알려주는 NetStream 메서드입니다. NetStream.html) –

+0

inBufferSeek를 시도하는 중 오류가 발생했습니다. "오류 : 정적 유형 flash.net:NetStream을 사용하여 참조를 통해 inFrame 속성에 액세스 할 수 없습니다." netStream이 정의 된 위치와 방법을보기 위해 코드를 업데이트했습니다. 면책 조항 : 나는 플레이어를 만들지 않았고 플래시를 처음 사용하는 경우입니다. –

관련 문제