대답은 아니지만이 문제를 해결하는 방법이 있습니다.
오디오 플레이어를 생성하여 버퍼 큐로 출력하고 싱크가 uri 인 경우 데이터를 가져 오는 즉시 버퍼로 재생한다는 것을 인식하지 못했습니다.
그래서 내가 무슨 일이 일어 났는지 깨달았을 때, 나는 버퍼 큐를 소스로, 출력 믹스를 싱크대로 갖는 또 다른 오디오 플레이어를 만들었습니다.
모든 것이 설정되면 "다운로드"를 시작한 첫 번째 오디오 플레이어 (uriPlayer)를 일시 중지하고 데이터를 버퍼로 스트리밍합니다. uriPlayer의 프리 페치가 충분한 데이터를 나타낼 때 uriPlayer의 "지속 시간"을 확인하여 노래의 길이를 확인한 다음 uriPlayer의 pcm 데이터를 보유 할만큼 충분히 큰 버퍼를 재생 시간과 샘플을 기반으로 만듭니다. 비율 (및 출력 채널, 스테레오는 2, 모노는 1).
이 버퍼를 uriPlayers 싱크 버퍼 큐에 넣은 다음 uriPlayers 상태를 Play로 설정하여 모든 데이터를 버퍼 큐의 버퍼로로드하기 시작합니다.
그런 다음이 동일한 버퍼를 두 번째 플레이어 (musicPlayer) 소스 버퍼에 대기시키고 해당 상태를 재생으로 설정하여 버퍼 대기열에서 버퍼 재생을 시작합니다.
uriPlayer가 음악 플레이어가 버퍼에서 재생하는 것보다 빠르게 음악 파일의 콘텐츠를 다운로드 할 수있는 한 uriPlayer의 getPosition을 호출하여 현재 노래가있는 곳과 현재 " musicPlayer가 현재 재생중인 위치의 모든 것이 완벽하게 작동합니다! 다운로드 속도가 느려지거나 너무 느리면 uriPlayer보다 앞서면 musicPlayer를 일시 중지하십시오.