2014-09-08 1 views
0

나는 VoIP 전화를 위해 html5 오디오 태그를 사용하여 실험 할 수 있도록 PHP로 mp3 파일을 출력하려고합니다. 나는 비행 중에 mp3 데이터를 생성하는 php 파일을 가리키는 HTML 문서에서 mp3 오디오 태그를 사용하려고합니다. mp3 헤더 부분은 2 비트로 인코딩됩니다. 나는 pack()을 들여다 보았지만 바이트로 패킹하는 것만 지원합니다. 헤더를 8 비트로 그룹화 할 수는 있지만 스트림으로 조금씩 쓸 수는 있습니다. PHP에서이 작업을 수행 할 수있는 방법이 있습니까? 아니면 저수준 컨트롤을 얻기 위해 java/C++ 서버를 작성해야합니까?PHP로 비트 단위로 바이너리 응답을 작성하려면 어떻게해야합니까?

UPDATE

그래서 몇 가지 조사 후 인해 TCP/IP의 한계 (실제 제한) 및 방법 PHP는 파이프 라인 작품, 바이트 전송에 의해 바이트를 전복하는 사용 정말 불가능한 것 같다 php.

+3

2 비트를 전송할 수 없습니다. 보낼 최소한 1 바이트를 작성해야합니다. 그 비트로 나머지 바이트는 무엇입니까? – sectus

+0

큰 파일/스트림을 사용하면 파일을 부적절한 파일로 나눌 수는 없겠지만 스트림을 끝내고 임의로 7 비트를 만들어 내 마지막 외로운 소리를 내고 싶지는 않습니다. 비트. –

+0

왜 개별 비트를 보내시겠습니까? 그것은 말이되지 않습니다. TCP를 포함하여 대부분의 프로토콜은 한 번에 한 바이트 만 전송할 수 있습니다. – Kayla

답변

0

이와 비슷한 것 : "1"랜덤 바이트를 가져 와서 원하는 비트를 설정하십시오.

$random_byte = mt_rand(0, 255); // it's not real one byte. But pack would truncate to it. 
$last_bit = 1; // 
$random_byte_with_last_bit = $random_byte | $last_bit; 
var_dump(sprintf('%08b', $random_byte_with_last_bit)); 
$result = pack('C', $random_byte_with_last_bit);