我在 MacOS 10.7.2(b.11C74) 上遇到了 QuickTime API 的问题。
这是一段打开电影描述符的openFrameworks代码:
// ofQuickTimePlayer.cpp
bool createMovieFromURL(string urlIn, Movie &movie){
char * url = (char *)urlIn.c_str();
Handle urlDataRef;
OSErr err;
urlDataRef = NewHandle(strlen(url) + 1);
// ...
BlockMoveData(url, *urlDataRef, strlen(url) + 1);
err = NewMovieFromDataRef(
&movie,
newMovieActive,
nil,
urlDataRef,
URLDataHandlerSubType);
// ...
if ( err != noErr ) {
ofLog(OF_LOG_ERROR,"createMovieFromURL: error loading url");
return false;
} else {
return true;
}
}
我只需要打开 HLS 视频流。
测试 Apple HLS 流不会加载失败,但不会呈现视频。这是:http ://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8
在这种情况下,我的测试 HLS 流无法加载并且 err 等于-2048
。
一切都与通过 HTTP 传输的 .mp4 和 RTSP 协议完美配合。
相同的流在 QuickTime Player 10.1 (501.5) 中可以完美播放。
我的小研究的详细信息在这里:https ://github.com/openframeworks/openFrameworks/issues/897
所以我的问题是:
- 这种奇怪行为的原因是什么?
- 如何解决?