飞行模式开启时,iOS 7 无法播放本地视频流

Posted

技术标签:

【中文标题】飞行模式开启时,iOS 7 无法播放本地视频流【英文标题】:Can not play local video stream in iOS 7 when airplane mode is on 【发布时间】:2013-09-25 14:20:28 【问题描述】:

我启动了一个本地 http 服务器来提供视频流服务:

http://localhost:55736/videos/foo.m3u8

并使用MPMoviePlayerController 播放它。无论是否开启飞行模式,在ios6下都能正常使用。

但在 iOS 7 中,当飞行模式打开(或同时关闭 WIFI 和蜂窝数据网络)时,我得到了错误:

_itemFailedToPlayToEnd: 
kind = 1;
new = 2;
old = 0;

MPMoviePlayerPlaybackDidFinishNotification 处理程序中:

NSConcreteNotification 0x146c35c0 
  name = MPMoviePlayerPlaybackDidFinishNotification; 
  object = <MPMoviePlayerController: 0x14682b90>;
  userInfo = 
    MPMoviePlayerPlaybackDidFinishReasonUserInfoKey = 1;
    error = "Error Domain=MediaPlayerErrorDomain Code=-11800....
  

【问题讨论】:

我也有同样的问题,如果你发现了什么,请告诉我们,我也在。 @freestyler 你能告诉我你是如何在本地流式传输视频的吗? 【参考方案1】:

尝试使用 127.0.0.1 而不是 localhost。它对我有用

【讨论】:

有谁知道为什么会这样?为什么本地主机不起作用? 看起来 Apple 破坏了名称解析代码中的某些内容...解析 localhost 永远不需要连接 - 它应该位于 /etc/hosts 或同等位置。 确实,这不是 Apple 第一次在名称解析方面做一些时髦的事情。我遇到了一个情况,如果你有一个配置文件——比如 Onavo 或其他一些改变 dns 的东西——它有时会尝试重新解析 localhost 而不是访问设备。可惜这个解决方案在模拟器中不能正常工作......我可以忍受这个。 这并不能解决我的问题,有人有其他建议吗?

以上是关于飞行模式开启时,iOS 7 无法播放本地视频流的主要内容,如果未能解决你的问题,请参考以下文章

飞行模式开启时 CLLocationManager 是如何获取位置的

电脑飞行模式怎么关闭,飞行模式灰色默认开启,WLAN选项消失。

如何通过 ios 11.0.2 以编程方式打开/关闭 Iphone 8 plus 的飞行模式

IOS unregisterForRemoteNotifications 在飞行模式下不起作用

飞行模式下的 iOS 13 wifi ssid

iOS 可达性未知时刻