如果我在HTC Hero(CyanogenMod 6.1.0)上運行這個演示程序,我從Camera.startPreview()方法中得到一個RuntimeException。HTC Hero上的Camera PreviewDemo
這似乎是這裏所描述的同樣的問題:
Android Camera will not work. startPreview fails
換句話說,你需要設置預覽大小時切換左右的寬度和高度。確實如此,但是會破壞其他設備上的演示。
現在,我理解演示的目的是展示如何讓攝像頭預覽啓動並運行(所以這個問題超出了它的範圍),但我想知道是否有一個乾淨的解決方法,因爲我不想把「如果HTC_HERO」式的邏輯在我的代碼(反正,我敢肯定,其他設備也會有類似的行爲)?
一個黑客可能會捕獲異常,然後再調用setPreviewSize()方法交換PARAMS,但我希望能找到一個更好的方式。
OP所指的「演示」是:https://github.com/commonsguy/cw-advandroid/tree/master/Camera/Preview – CommonsWare 2012-03-25 16:38:39
嗯,我必須道歉,因爲我不能再現問題了。事實上,它似乎每次都是第一次工作。我只能假設通用的「startPreview失敗」的RuntimeException正在被別的東西造成的。出於興趣,高級Android開發書討論了需要在橫向模式下進行定向的Camera預覽邏輯中的錯誤。我有興趣瞭解更多關於這方面的信息? – 2012-03-25 16:55:39
至少通過1.x,你必須在任何涉及「攝像頭」的任何環境中工作。關閉我的頭頂,這是固定的,當我不記得。 – CommonsWare 2012-03-25 16:56:22