我的最终目标是创建一个FFmpeg命令,将我的h264.DTS.mkv文件转换为与AppleTV兼容的格式,同时保留原始质量。
我快到了,但是我还没弄清楚如何禁用流/音轨。
到目前为止,我已经:
ffmpeg -i FILE \
-y -strict experimental \
-map 0:0 -map 0:1 -map 0:1 -map 0:1 -map 0:2 \
-c:0 copy -c:1 aac -ac:a 2 -c:2 ac3 -ac:a 6 -c:3 copy -c:4 mov_text \
OUTPUT
Run Code Online (Sandbox Code Playgroud)
这将产生一个输出文件,如下所示:
问题是我需要它看起来像:
因此,我需要知道如何禁用非1st音频流/音轨。
据我了解,这是轨道标头原子在“ tkhd.flags”位置的一部分。但是我还不能弄清楚如何通过命令行参数设置它。
任何帮助将不胜感激。
我已经按照本教程进行操作,一切正常。我遇到的唯一问题是我不知道如何检测按钮何时被按下?
提前致谢
UIPickerView 在 tvOS 中不可用。知道我的 Pickerview 的内容是动态的并且最多可以包含 10 个元素,我应该如何构建它的等效项。谢谢您的回答。
我想要实现的非常简单:每次用户聚焦一个集合视图单元格时,我想让焦点单元格水平居中.似乎我目前的方法根本不起作用.
func collectionView(collectionView: UICollectionView, didUpdateFocusInContext context: UICollectionViewFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
guard collectionView === self.categoryCollectionView else {
return
}
guard let indexPath = context.nextFocusedIndexPath else {
return
}
collectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .CenteredHorizontally, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,集合视图忽略了任何在任何地方滚动的尝试.出于测试目的,我将索引路径更改为集合视图中的最后一个项目的索引路径,但它仅在首次显示集合视图时有效.
刚刚获得了新的Apple TV,我正在尝试为新应用设置应用程序图标.它要求"App Icon - Large"和"App Icon Small"的Front,Middle和Back图像.我已尝试将512x512图像放入中间并出现以下错误:
内容为"中"的最后一个图像堆栈层必须正好填充图像堆栈.它的当前帧是{{384,128},{512,512}},而图像堆栈的大小是{1280,768}.
是否需要使用1280x768图像?更重要的是,tvOS Apps的图像资产究竟需要什么?
我有一个UITextView在我的电视应用程序,当我尝试使其可聚焦,然后UI不是使其可聚焦,我无法滚动它.我读了一些关于它的问题,有些人说它是一个已知的问题,我们应该使用故事板.实际上我正在使用故事板但仍然无法使其工作.我还试图使它selectable,scrollEnabled并且userInteractionEnabled然后最后也尝试这行代码,但他们没有工作.
descriptionLbl.panGestureRecognizer.allowedTouchTypes = [NSNumber(integer: UITouchType.Direct.rawValue)]
Run Code Online (Sandbox Code Playgroud)
我也尝试打印boundsabd contentSize,UITextView这里是日志
Content Size (740.0, 914.0)
Bounds (25.0, 0.0, 740.0, 561.0)
Run Code Online (Sandbox Code Playgroud)
这是我的代码可以帮助我一些身体
@IBOutlet weak var descriptionLbl: UITextView!
var currentModel : Model?
override func viewDidLoad() {
super.viewDidLoad()
descriptionLbl.selectable = true
descriptionLbl.scrollEnabled = true
descriptionLbl.userInteractionEnabled = true
descriptionLbl.panGestureRecognizer.allowedTouchTypes = [NSNumber(integer: UITouchType.Direct.rawValue)]
descriptionLbl.text = (currentModel?.description)! + (currentModel?.description)! + (currentModel?.description)!
descriptionLbl?.contentInset = UIEdgeInsets(top: 0.0, left: -25.0, bottom: 0.0, right: 0.0);
}
Run Code Online (Sandbox Code Playgroud)
我想我不应该做这么多技巧,但它不会以任何方式工作.重点实际上是,UITextView但它不会滚动.有任何想法吗?
当使用UICollectionView包含大量具有图像的单元格时,每当屏幕外单元格滚动到屏幕上时,我都会在日志中收到奇怪的警告:
2015-11-06 15:50:20.777 MyApp[49415:13109991] [/BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreUI_Sim/CoreUI-370.8/Bom/Storage/BOMStorage.c:517] <memory> is not a BOMStorage file
Run Code Online (Sandbox Code Playgroud)
这是单元设置:
import UIKit
class FeaturedCell: UICollectionViewCell {
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var activityIndicator: UIActivityIndicatorView!
private var xml: XMLIndexer? = nil
override func awakeFromNib() {
super.awakeFromNib()
// this enables the parallax type look
self.imageView.adjustsImageWhenAncestorFocused = true
self.imageView.clipsToBounds = false
}
func loadImageFromUrlString(str: String) {
if let url = NSURL(string: str) {
if let data = NSData(contentsOfURL: url){
let image = UIImage(data: data)
self.imageView.image = image …Run Code Online (Sandbox Code Playgroud) 我有一个简单的视图,它有两个文本视图和一个按钮。所有控件都垂直放置。我可以使用遥控器从一个控件导航到另一个控件。但是,我正在尝试使以下场景起作用:
虽然步骤 1-3 是开箱即用的,但以编程方式更改焦点 (4) 不起作用。这是一些代码:
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textField == self.textfieldB) {
self.activeView = self.textfieldB;
[self setNeedsFocusUpdate];
[self updateFocusIfNeeded];
return YES;
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
并且- (UIView *)preferredFocusedView我将返回存储在 self.activeView 中的任何内容(是的,它将返回按钮实例)。所有方法都按预期调用,但焦点不会改变。我在这里做错了什么?
提前致谢!
我正试图在tvOS上实现非常简单的用户界面,经过几次失败后,似乎不可能.
我有2个水平滚动的集合视图.
所有城市的选项集都相同,但某些城市可以禁用某些选项.每个城市至少有一个选项.
用户可以通过关注特定细胞来选择城市和选项.当前选择在屏幕上可见(请参阅集合视图下的标签)
我要做的是记住选定的城市/选项,所以当我更改thos集合视图之间的选项时 - 之前选择的项目变得集中(选中).这可以使用remembersLastFocusedIndexPathflag fo UICollectionView但集合视图忽略禁用的单元格.
例如,在附加项目中,都柏林禁用了选项3.因此,如果用户选择伦敦,则选择选项3,然后将焦点移回城市集合视图并将选择更改为都柏林,然后选项3将被禁用(是和返回).但是如果是真的 - 集合视图忽略所有这些并尝试集中禁用的项目.此时UI ob集合视图"破碎":isUserInteractionEnabledfalsecollectionView(_ collectionView:, canFocusItemAt indexPath:)falseremembersLastFocusedIndexPath
虽然从Apple的文档indexPathForPreferredFocusedView(in:)中看UICollectionView不出来,但是有一种方法,但它只针对首选触发一次.
有没有办法为聚焦细胞编写"自定义"逻辑?我需要为选项集合视图实现的是选择当前选择的选项(如果可用)或第一个可用选项(如果当前选择的选项在每次获得焦点时被禁用).子类化UICollectionView不应该是解决这个问题的方法,因为它不应该知道数据模型.
在这里,您可以下载测试项目
我正在开发 Apple TV 应用程序。它不使用 xamarin。
我通过 Visual Studio Team Services 构建代理构建项目。我使用 Apple Configurator 2 将生成的 IPA 安装到电视上,但应用程序在启动时崩溃。
设备日志(使用配置器收集)显示以下错误:
Apple-TV-2 symptomsd(SymptomEvaluator)[120] <Notice>: 243 com.mycompany.myapp: ForegroundRunning (most elevated: ForegroundRunning)
Apple-TV-2 symptomsd(SymptomEvaluator)[120] <Error>: Attempt to add an app with insufficient id, info {
BKSApplicationStateAppIsFrontmost = 1;
BKSApplicationStateExtensionKey = 0;
SBApplicationStateDisplayIDKey = "com.mycompany.myapp";
SBApplicationStateKey = 8;
SBApplicationStateProcessIDKey = 243;
SBMostElevatedStateForProcessID = 8;
}
Run Code Online (Sandbox Code Playgroud)
我看过其他具有类似设备日志的 SO 帖子,但它们似乎是一个单独的问题(IOS 应用程序崩溃甚至没有输入我的代码),这与 xamarin.
当我直接使用xcodebuild(而不是通过构建代理)构建项目,并将带有 Apple Configurator 2 的 IPA 安装到电视上时,它就像一个魅力。只有在 VSTS 构建代理中使用完全相同的命令时,问题才会存在。我已经消除了我的普通用户环境和构建代理的环境之间的尽可能多的差异(它们在同一台机器上,代理在同一用户上运行)。
有没有人见过这样的东西?关于我可以在哪里寻找代理和常规环境之间的潜在原因/差异的任何提示?我完全没有想法。
笔记:
apple-tv ×10
tvos ×9
swift ×4
uikit ×3
xcode ×2
crash ×1
ffmpeg ×1
ios ×1
objective-c ×1
uitextview ×1