我想在iPad上播放iOS 4.3中的电影.当文件名具有文件扩展名时,我已成功使用MPMoviePlayerController和AVPlayer从远程URL加载文件.但是,当我使用不返回文件名的CDN(只是一个不可猜测的随机名称)时,MPMoviePlayerController或AVPlayer似乎都无法应对.
有没有办法告诉任何一个玩家它真的是一个x型电影,它应该继续播放它?
MPMoviePlayerController将从其更改的状态通知返回以下错误:
{
MPMoviePlayerPlaybackDidFinishReasonUserInfoKey = 1;
error = "Error Domain=MediaPlayerErrorDomain Code=-12847 \"This movie format is not supported.\" UserInfo=0x5b60030 {NSLocalizedDescription=This movie format is not supported.}";
}
Run Code Online (Sandbox Code Playgroud)
我知道该文件是一个有效的m4v文件,因为当我重命名它时一切都很好.
在Mac OS X Lion中,CARemoteLayerServer和CARemoteLayerClient被添加到QuartzCore.我一直试图调查它们是否适合在多个进程之间拆分图形应用程序,但没有成功.
我可以在一个进程中成功使用它们,其中包含一些代码:
- (void)buildLayerSingleProcess
{
CARemoteLayerServer *server = [CARemoteLayerServer sharedServer];
self.client = [[CARemoteLayerClient alloc] initWithServerPort: server.serverPort];
uint32_t clientID = self.client.clientId;
CALayer *layer1 = [CALayer layer];
layer1.bounds = CGRectMake(0.0, 0.0, 100.0, 100.0);
CGColorRef color = CGColorCreateGenericRGB(0.4, 0.2, 0.3, 1.0);
[layer1 setBackgroundColor: color];
CFRelease(color);
[layer1 setOpacity: 0.75];
[layer1 setBorderWidth: 5.0f];
layer1.position = CGPointMake([[self.window contentView] frame].size.width / 2.0, [[self.window contentView] frame ].size.height / 2.0);
self.client.layer = layer2;
CALayer *servedLayer = [CALayer layerWithRemoteClientId: self.client.clientId];
[[[self.window contentView] layer] addSublayer: servedLayer];
}
Run Code Online (Sandbox Code Playgroud)
这很好,但我想尝试在进程之间做类似的事情.server.serverPort的类型为mach_port_t这一事实意味着它适合在进程之间使用. …
我想对Objective C应用程序中的重复规则做一些推理(目前针对iOS).我想做一些事情,比如当特定事件的下一次出现来自给定点时,或者特定日期和时间是否属于给定规则.
以前我在python中使用dateutil rrule模块编写了这样的代码,它运行得非常好,但还没有找到一个很好的Objective C等价物.Calendar Framework中有一个类听起来很有用,CalRecurrenceRule,但似乎没有任何方法来推断它产生的对象,所以没有任何帮助.
在python中编写了大量的时间代码,我知道正确的做法很难,所以我想避免自己编写递归逻辑,所以如果有人可以推荐一个可以做我想要的库,可以在iOS中使用应用程序,非常感谢.
- 迈克尔
作为应用程序的一部分,我正在尝试使用 Windows 性能计数器来监视机器运行状况。我有一些 DataCollector 配置为将数据写出为 CSV 或 BLG 格式。但是,我注意到时间戳没有每个样本时间戳的 TZ 信息,每个文件只有一次。这意味着在单个数据文件中,我将看到以下内容:
"(PDH-CSV 4.0) (GMT Standard Time)(-60)","\\MACHINE-NAME\% C2 Time"
"10/29/2017 01:59:44.562","88.359340674585567"
"10/29/2017 01:59:59.562","93.754278507632279"
"10/29/2017 01:00:14.562","89.834673388599242"
"10/29/2017 01:00:29.563","94.014449309223536"
Run Code Online (Sandbox Code Playgroud)
类似地,在转换中,您会看到丢失了一个小时的数据(与该小时离线的机器相比,这更难消除歧义)。
我认为二进制数据可能会存储更多信息,因此我也以 BLG 格式创建了相同的指标,并使用 PowerShell 读取信息。但是,在这种情况下,我仍然无法获取每个时间戳的时区信息。例如,
# $counters = Import-Counter -Path mysamples.blg
# $counters[10].Timestamp
29 October 2017 01:59:59
# $counters[11].Timestamp
29 October 2017 01:00:14
# $counters[10].Timestamp.IsDaylightSavingTime()
False
# $counters[11].Timestamp.IsDaylightSavingTime()
False
# $counters[10].Timestamp.ToFileTimeUtc()
131537159995620000
# $counters[11].Timestamp.ToFileTimeUtc()
131537124145620000
Run Code Online (Sandbox Code Playgroud)
有没有办法获得与性能计数器数据中的时间戳相关联的正确 TZ 信息,或者是否有办法将 UTC 时间添加到日志而不是 TZ 偏移时间戳?