我想在Odroid-XU4设备上安装Android操作系统,并通过HDMI将其连接到垂直触摸屏。我希望内容显示为肖像并适合屏幕。
我在Odroid上安装了4.4.4,6.0(Cyanogenmod 13.0)和7.1(Lineage 14.1)安卓图像。默认情况下,所有这些都将屏幕显示为横向,因此我必须配置操作系统以将其显示为纵向。
我首先使用AndroidUtility(操作系统映像中包含的工具)并将HDMI方向设置为纵向。使用4.4.4 OS映像显示屏幕(纵向和全屏)。不幸的是,4.4.4操作系统对我不起作用,因为设备必须是COSU,这需要6.0或更高版本的操作系统。
但是使用AndroidUtility,屏幕在6.0和7.1操作系统中都显示如下:
通过论坛,博客查看...我发现解决方案应该在OS build.prop配置文件中编辑这些行:
static void Main (string[] args) {
concatMedia (new string[] {
args[0], args[1]
}, args[2]);
}
private static string makeTempFile (string fileName) {
FFMpegConverter c = new FFMpegConverter ();
FileInfo fileInfo = new System.IO.FileInfo (fileName);
string tempFile = Path.Combine (fileInfo.DirectoryName, Path.GetFileNameWithoutExtension (fileName) + ".ts");
c.Invoke (string.Format ("-i {0} -c copy -bsf:v h264_mp4toannexb -f mpegts -y {1}", fileName, tempFile));
return tempFile;
}
private static void concatMedia (string[] files, string output) {
FFMpegConverter c = new FFMpegConverter ();
List<string> tempFiles = new List<string> ();
foreach (var item in files) {
tempFiles.Add (makeTempFile (item));
}
c.Invoke (string.Format ("-i \"concat:{0}\" -c copy -bsf:a aac_adtstoasc -y {1}", string.Join ("|", tempFiles), output));
foreach (var item in tempFiles) {
System.IO.File.Delete (item);
}
}
执行此操作,7.1操作系统版本看起来像portait并填满所有屏幕......但它显示为颠倒。
6.0操作系统版本看起来不仅被转动,而且还被裁剪:
如何将其显示为纵向和全屏?