【iPhone代码片段之五】读取URL内容 .

读取URL内容,核心代码如下:

self.url = tfURL.text;
if([self.url length]<=0){
self.url = @"http://www.baidu.com";
}
NSURL *nsURL = [NSURL URLWithString:self.url];

NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

NSError *error;
NSString *content = [NSString stringWithContentsOfURL:nsURL
encoding:enc
error:&error];
[self.tvURLContent setText:content];



效果截图如下:
[img]
[img]http://dl.iteye.com/upload/attachment/0078/7476/7d3e33fe-0690-3e79-891a-843cbb8bfdef.png[/img]
[/img]
<!DOCTYPE html> <html> <head> <title>HLS.js 播放 M3U8</title> <!-- 引入 HLS.js 库 --> <!-- <script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script> --> <script src="~/content/videoplayer/m3u8/hls.js"></script> </head> <body> <div>使用 HLS.js 原生实现(推荐)</div> <video id="hlsVideo" controls width="800" height="450" muted autoplay></video> <script> const video = document.getElementById('hlsVideo'); const m3u8Url = '/content/videoplayer/m3u8/demovideo/logo3/logo3.m3u8'; if (Hls.isSupported()) { // 检测浏览器支持性 const hls = new Hls({ maxBufferLength: 30, // 最大缓冲长度(秒) maxMaxBufferLength: 60, // 绝对最大缓冲 enableWorker: true, // 启用WebWorker pLoader: (context) => { if (context.url.includes('.ts')) { const baseUrl = context.url.split('?')[0]; const newUrl = baseUrl.replace('.ts', ''); context.url = newUrl; } return Hls.DefaultConfig.loader(context); } }); // if (hls) { // hls.destroy(); // hls = null; // } hls.config.debug = true; //启用调试日志 // 配置请求拦截器 // hls.config.pLoader = (context) => { // // 修改TS文件的URL,可以添加token、时间戳等参数 // if (context.url.endsWith('.ts')) { // const url = new URL(context.url); // url.searchParams.append('token', 'your-dynamic-token'); // url.searchParams.append('timestamp', Date.now().toString()); // context.url = url.toString(); // } // return new Hls.DefaultConfig.loader(context); // }; // hls.config.pLoader = (context) => { // if (context.url.endsWith('.ts')) { // // 使用URL重写而非添加参数 // const originalUrl = context.url; // const baseUrl = originalUrl.substring(0, originalUrl.lastIndexOf('/')); // const segmentName = originalUrl.substring(originalUrl.lastIndexOf('/') + 1); // // 重写为无扩展名路径 // context.url = `${baseUrl}/segment-${segmentName.replace('.ts', '')}`; // } // return hls.createLoader(context); // }; hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED, () => { video.play().catch(e => { console.log(`播放失败: ${e.message}`); }); console.log('媒体解析完成,开始播放'); }); hls.on(Hls.Events.ERROR, (event, data) => { handleHlsError(data); }); hls.loadSource(m3u8Url); //加载视频源 video.controls = true; // 错误处理 hls.on(Hls.Events.ERROR, (event, data) => { console.error('HLS 错误:', data); }); } else if (video.canPlayType('application/vnd.apple.mpegurl')) { // Safari 原生支持 HLS video.src = m3u8Url; video.addEventListener('loadedmetadata', () => { video.play(); }); } else { alert('当前浏览器不支持 HLS 播放'); } // 错误处理函数 function handleHlsError(data) { let errorMsg = '播放错误: '; if (data.fatal) { switch (data.type) { case Hls.ErrorTypes.NETWORK_ERROR: errorMsg += `网络错误(${data.details})`; hls.startLoad(); // 网络中断后重连 break; case Hls.ErrorTypes.MEDIA_ERROR: errorMsg += `媒体错误(${data.details})`; hls.recoverMediaError(); // 媒体错误恢复 break; default: errorMsg += `致命错误(${data.details})`; loadVideo(hls.url); // 重新加载 break; } } else { errorMsg += `非致命错误(${data.details})`; } console.log(errorMsg); } </script> </body> </html> 请修复这里无法打开video的BUG,并给出完整的代码
10-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值