2013-07-05 21 views
0

我有一個main.lua,它告訴我的應用去另一個場景(intro.lua),這是一個視頻播放,以及之後視頻完成後,我想要進入第三個場景,這是我的遊戲菜單(menu.lua)。Corona應用停止在Android上,試圖在視頻完成後更改場景

問題是,當視頻完成時,我的Android應用停止播放。它不會進入「菜單」場景。

我的代碼如下:

我main.lua:

local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

system.setIdleTimer(false) 
display.setStatusBar(display.HiddenStatusBar) 


yourName="" 
labName="" 
titleName="" 
rememberMusic=1 
rememberSound=1 
remeberMusicSlider=300 
remeberSoundSlider=300 

sndMusic = audio.loadStream ("Audio/ambient.mp3") 
sndClick = audio.loadStream ("Audio/click.mp3") 

storyboard.gotoScene("intro") 

return scene 

我的視頻intro.lua:

local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

system.setIdleTimer(false) 
display.setStatusBar(display.HiddenStatusBar) 

local onComplete = function() 

    storyboard.gotoScene("menu") 
end 
media.playVideo("videos/logo.mp4", false, onComplete) 

return scene 

我menu.lua是巨大的,我無法在此發佈。但它沒有問題。如果我從我的main.lua中調用它,它效果很好。如果我從我的intro.lua(沒有視頻)調用它,它效果很好。

但是如果我叫它(如上面的代碼所寫)當視頻完成時,應用程序停止。

任何人有一個想法是怎麼回事?

Eclipse中的錯誤:

07-05 17:52:22.111: W/dalvikvm(448): threadid=1: thread exiting with uncaught exception (group=0x410f5930) 
07-05 17:52:22.121: E/AndroidRuntime(448): FATAL EXCEPTION: main 
07-05 17:52:22.121: E/AndroidRuntime(448): java.lang.NullPointerException 
07-05 17:52:22.121: E/AndroidRuntime(448): at com.ansca.corona.VideoActivity$1.onCompletion(VideoActivity.java:48) 
07-05 17:52:22.121: E/AndroidRuntime(448): at android.widget.VideoView$3.onCompletion(VideoView.java:361) 
07-05 17:52:22.121: E/AndroidRuntime(448): at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1980) 
07-05 17:52:22.121: E/AndroidRuntime(448): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-05 17:52:22.121: E/AndroidRuntime(448): at android.os.Looper.loop(Looper.java:137) 
07-05 17:52:22.121: E/AndroidRuntime(448): at android.app.ActivityThread.main(ActivityThread.java:5041) 
07-05 17:52:22.121: E/AndroidRuntime(448): at java.lang.reflect.Method.invokeNative(Native Method) 
07-05 17:52:22.121: E/AndroidRuntime(448): at java.lang.reflect.Method.invoke(Method.java:511) 
07-05 17:52:22.121: E/AndroidRuntime(448): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
07-05 17:52:22.121: E/AndroidRuntime(448): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
07-05 17:52:22.121: E/AndroidRuntime(448): at dalvik.system.NativeStart.main(Native Method) 
07-05 17:52:22.131: W/ActivityManager(478): Force finishing activity com.demigod.biolab/com.ansca.corona.VideoActivity 
07-05 17:52:22.271: D/dalvikvm(478): GC_FOR_ALLOC freed 708K, 29% free 17351K/24288K, paused 110ms, total 112ms 
07-05 17:52:22.791: W/ActivityManager(478): Activity pause timeout for ActivityRecord{41e855c0 u0 com.demigod.biolab/com.ansca.corona.VideoActivity} 
07-05 17:52:22.981: I/hwcomposer(125): Setting interactive mode: On 
07-05 17:52:32.291: W/ActivityManager(478): Launch timeout has expired, giving up wake lock! 
07-05 17:52:32.801: W/ActivityManager(478): Activity idle timeout for ActivityRecord{41ccb8d8 u0 com.demigod.biolab/com.ansca.corona.CoronaActivity} 
+0

您是否看到任何錯誤消息也許有那麼多東西加載到您的代碼 – DevfaR

+0

我無法在模擬器中調試它,因爲我在Windows上工作,而Windows上的模擬器不支持視頻播放。我得到的唯一錯誤是在我的物理android設備(nexus 7)中,它說「不幸的是,你的應用程序已經停止」。 – user2347313

+0

你可以使用eclipse和android sdk來查看你的錯誤 – DevfaR

回答

0

您的onComplete嘗試你去你的下一個場景前

local myVideo 
local onComplete = function() 
    --remove your video here 
    myVideo:removeSelf() 
    storyboard.gotoScene("menu") 
end 
myVideo = media.playVideo("videos/logo.mp4", false, onComplete) 

或者你使用不支持的格式嘗試訪問該刪除的視頻鏈接 http://docs.coronalabs.com/api/library/media/playVideo.html

+0

如何刪除視頻? – user2347313

+0

我將編輯代碼 – DevfaR

+0

不行,不起作用。同樣的問題。我試圖將其刪除。 – user2347313