test1.mp3과 test2.mp3은 동일한 비트 전송률과 샘플 속도를 가지고 있으며 HTTP 응답으로 병합하려고합니다. 결과 파일은 test.mp3입니다.MP3를 다른 두 곡에서 만든 MP3는 WMP11에서 재생되지 않습니까?
test.mp3은 WMP12 및 VLC에서 정상적으로 재생됩니다. WMP11에서는 test1.mp3에서 나온 오디오 만 들립니다. test2.mp3의 오디오의 시작을 듣고 자하는 순간, 플레이어는 연주를 멈 춥니 다. WMP11은 오류를보고하지 않습니다 ... 그냥 재생을 중지합니다.
WMP11에서 test.mp3이 올바르게 재생되도록 변경해야하는 항목은 무엇입니까?
protected void Page_Load(object sender, EventArgs e) {
Response.Clear();
Response.ContentType = "audio/mpeg";
Response.AddHeader("Content-Disposition", "attachment; filename=test.mp3");
var bytes1 = System.IO.File.ReadAllBytes(@"C:\test1.mp3");
WriteBytesToResponse(bytes1);
var bytes2 = System.IO.File.ReadAllBytes(@"C:\test2.mp3");
WriteBytesToResponse(bytes2);
Response.End();
}
private void WriteBytesToResponse(byte[] sourceBytes) {
using (var sourceStream = new MemoryStream(sourceBytes, false)) {
sourceStream.WriteTo(Response.OutputStream);
}
}
두 번째 파일의 오디오가 생성되기 전에 HTTP 응답을 통해 첫 번째 파일의 오디오를 보내야합니다 (응답 중에 동적으로 생성 됨). 클라이언트의 타임 아웃 허용 범위를 제어 할 수없고 (두 번째 오디오가 나올 때까지 한 바이트를 보내지 않으면 _will_이 발생하는 것을 방지하기 위해 첫 번째 오디오 파일이 즉시 전송됩니다.) 동적으로 생성됩니다 (몇 분 소요). 바위 같은 곳과 힘든 곳 사이에있는 것 같은데? – lance
@lance : 비교적 빨리 HTTP 소켓을 통해 전달할 수 없다면 파일 생성 전략에 대한 귀하의 요청을 다시 생각해보십시오 - 다른 문제 (DoS 등) 호스트도 묻습니다 –
마침내 나는 , 정말. 지난 며칠간 프로젝트의 디자인에도 다른 결함이 나타났습니다. 이것은 대중을위한 것이 아니었고, 이제는 쓸모없는 코드를 많이 배웠습니다. 나는 곧 귀하의 응답을 대답으로 표시 할 것입니다. 너는 매우 도움이되었다. 고맙습니다. – lance