我有一个应用程序,它从网络流式传输视频并使用MPMoviePlayerController
对象播放它,以便在设备上或通过AirPlay播放.
该应用程序支持后台操作,并UIBackgroundModes
在其plist文件中的必需键中列出了"audio"选项.
通过AirPlay播放时,应用程序可以成功推送到后台,视频继续正常播放.到现在为止还挺好.
根据Apple文档:
包括音频键告诉系统框架他们应该继续播放并以适当的间隔对应用程序进行必要的回调.如果应用程序不包含此键,则当应用移动到后台时,应用播放的任何音频都会停止.
但是,这些回调没有进行.
该应用程序使用两种类型的回调:与通知相关联的回调MPMoviePlayerController
以及AVPlayer
基于计时器的回调,这些回调监视回放位置和性能统计数据以进行监控.
纵观苹果的笔记,我当然希望收到的第一类型的回调,从而使应用程序可以响应MPMoviePlayerPlaybackStateDidChangeNotification
,MPMoviePlayerPlaybackDidFinishNotification
并MPMoviePlayerLoadStateDidChangeNotification
,但这种情况不会发生.
有谁知道在后台AirPlay播放过程中是否可以接收这些,如果有的话,这是如何实现的?
**请注意:该应用程序在前台运行时可以正常工作并收到通知.只有当被推到后台并通过AirPlay播放时才会收到通知.
同样,视频正好在后台播放AirPlay.只收到未收到的通知**
我有一个简单的智能电视应用程序,它显示垂直列表中的项目列表,其中一个键处理程序附加到与包含列表的DIV相关联的锚点.
该列表包括一组DIV,每个DIV显示由外部DIV包围的文本字符串.完整列表的高度为400px,完全在屏幕高度的540px范围内.
用户可以使用向上和向下按钮在列表中上下移动以突出显示各个项目.
在模拟器上,这可以正常工作,但是当用户按下时,在真实的电视上,不仅高光移动应该完成,而且整个屏幕向上移动.
同样,当用户点击时,高亮显示正确移动但屏幕向上移动.
这是列表的标记
<div id="itemList">
<div class="slot" id="slot0">Slot 0</div>
<div class="slot" id="slot1">Slot 1</div>
<div class="slot" id="slot2">Slot 2</div>
<div class="slot" id="slot3">Slot 3</div>
<div class="slot" id="slot4">Slot 4</div>
</div>
<a href='javascript:void(0);' id='anchorList' onkeydown='KeyHandler.list_KeyPress()'></a>
Run Code Online (Sandbox Code Playgroud)
这是CSS
#itemList {
position: absolute;
left: 20px;
top: 20px;
width: 250px;
height: 400px;
background-color: #000000;
}
#itemList .slot {
color: #ff0000;
width: 100%;
height: 80px;
}
Run Code Online (Sandbox Code Playgroud)
事件list_KeyPress函数递增或递减突出显示项的索引,并将其类更改为slotSelected
屏幕上没有任何内容正在重新绘制,移动或调整大小.唯一的变化是突出显示的DIV类.
为了消除这个因素,我在list_KeyPress()中注释掉了代码并仍然得到了同样的问题 - 所以不是这样.
这绝对与按键有关.
我有一个整数属性,每秒更新一次,信号强度值范围为0 - 100.
我希望能够在过去的10次,25次,50次测量中持续测量移动平均值.
这样做最有效的方法是什么?
我目前正在考虑使用NSMutableArray实现一组FIFO队列,并在每次在阵列具有必需条目数时在末尾添加新值时弹出前导值.但是,我不确定是否有更有效的方法来做到这一点.
从表面上看,这似乎是一个非常简单的问题,但由于某种原因,我无法让它发挥作用.
我有一个杂志式应用程序,以压缩包的形式下载每个问题的数据.
下载并解压后,应用程序会按预期成功访问包中包含的各种文件.这些包括JSON,PNG,JPG,视频等.
但是,我还包含一个XIB文件,其中包含一系列UIViews中内容的物理布局,这是我无法使用的文件.
该文件存在,但当我尝试使用以下方法加载它时:
UIViewController *controller = [[UIViewController alloc] initWithNibName: @"ViewController" bundle: assetBundle];
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/C6718DB8-0C0F-4D38-84E6-55C145279957/Documents/asset-4.bundle> (not yet loaded)' with name 'ViewController''
Run Code Online (Sandbox Code Playgroud)
现在,这是iOS对从下载的bundle中不访问XIB的限制,还是我在调用XIB时使用的一些错误?
但是,我找不到任何明确的禁止以这种方式使用fetched bundle.
ios ×3
average ×1
avplayer ×1
iphone ×1
javascript ×1
multitasking ×1
nsbundle ×1
objective-c ×1