我是iPhone开发的新手,我正在尝试将HTML对象加载到UIWebView
。
问题在于,当我将HTML数据转换为字符串时,应用程序崩溃并显示EXC_BAD_ACCESS
。该对象是一个brightcove视频,我直接从brightcove网站复制嵌入代码,所以我不明白为什么它不工作。非常感谢任何帮助。
代码:
NSString *brightstring = [NSString stringWithFormat:@"<html><body><object id=flashObj width=540 height=400 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0><param name=movie value=http://c.brightcove.com/services/viewer/federated_f9?isVid=1 /><param name=bgcolor value=#FFFFFF /><param name=flashVars value=videoId=%@&playerID=659636031001&playerKey=AQ~~,AAAAC59qSJk~,vyxcsD3OtBM6WfpHEsDft5laXH9ASJhF&domain=embed&dynamicStreaming=true /><param name=base value=http://admin.brightcove.com /><param name=seamlesstabbing value=false /><param name=allowFullScreen value=true /><param name=swLiveConnect value=true /><param name=allowScriptAccess value=always /><embed src=http://c.brightcove.com/services/viewer/federated_f9?isVid=1 bgcolor=#FFFFFF flashVars=videoId=%@&playerID=659636031001&playerKey=AQ~~,AAAAC59qSJk~,vyxcsD3OtBM6WfpHEsDft5laXH9ASJhF&domain=embed&dynamicStreaming=true base=http://admin.brightcove.com name=flashObj width=540 height=400 seamlesstabbing=false type=application/x-shockwave-flash allowFullScreen=true swLiveConnect=true allowScriptAccess=always pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash></embed></object></body></html>", clipid]; //<--Crashes Here
NSString* html = [NSString stringWithFormat:brightstring, 540, 400];
[videoScreen loadHTMLString:html baseURL:nil];
答案 0 :(得分:0)
这很简单:
NSString *brightstring = [NSString stringWithFormat:@"...videoId=%@&...videoId=%@&...", clipid]; //<--Crashes Here
您的格式字符串中有%@
两次,但您只传入一个参数。
我建议您从文件中加载HTML并使用-stringByReplacingOccurrencesOfString:withString:
填写视频ID(使用${VIDEO_ID}
等占位符。
答案 1 :(得分:0)
看起来视频是一个Flash视频,据我所知(我可能错了)但iOS不支持Flash。尝试使用其他格式,如mp4,mpv,3gp等。出于测试目的,我首先会托管.html文件(如果您有托管公司,或使用apache在本地运行),然后从手机的Web浏览器访问它。如果它在那里不起作用,那么肯定它也不会以这种方式工作。