我正在使用諾基亞映像SDK 1.1的圖像應用程序。看起來相當簡單的任務(讓用戶選擇圖像並應用一些過濾器)目前阻止我2天。 我寫了數百行文章,並回顧了所有諾基亞Dev開發示例(其中大部分時間都非常順利,但對於像我這樣的映像SDK初學者來說太複雜了),但我總是會得到以下例外:無效的指針在Nokia.Graphics.Imaging.BitmapRender.RenderAsync()
{System.NullReferenceException: Invalid pointer at Nokia.Graphics.Imaging.BitmapRenderer.RenderAsync()
這是代碼(我已經減少了在過濾器傳遞所以只是一個空FilterEffect傳遞上簡單的部分):
PhotoChooserTask task = new PhotoChooserTask();
task.Completed += async (result,choosen) =>
{
Stream stream = choosen.ChosenPhoto;
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(stream);
WriteableBitmap bitmap = new WriteableBitmap(bitmapImage);
WriteableBitmapRenderer renderer = new WriteableBitmapRenderer(new FilterEffect(), bitmap, OutputOption.PreserveAspectRatio);
await renderer.RenderAsync();
};
task.ShowCamera = true;
task.Show();
所以,如果我明白了一切順利,該應用程序是因爲某種無效指針被傳遞而崩潰,但它有效的位圖 - 或者至少它的大小是正確的,所以我猜測,數據也被傳遞了。
無論如何,這裏是堆棧跟蹤
at Nokia.Graphics.Imaging.BitmapRenderer.RenderAsync()
at Nokia.Graphics.Imaging.WriteableBitmapRenderer.<<RenderAsync>b__0>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at RealtimeFilterDemo.MainPage.<<ShutterButton_Tap>b__1a>d__1c.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)
謝謝很多!似乎工作。我猜想它會發生,因爲Imaging SDK文檔太差:) – jalgames
實際上,應該有許多與上述相似的示例。 :)你想看到什麼添加到文檔? –
我想問題是所有的樣本都很複雜。我的意思是,上面的代碼實質上就是您需要的一個簡單的過濾器應用程序,但所有示例都包含數十個包含數百個代碼行的助手類的文件。只是簡單的超級機制來理解所有的代碼太複雜了。 – jalgames