[英]Check if Android MediaPlayer has been initialized
如何檢查MediaPlayer
對象是否已初始化? 是否有類似的東西:
MediaPlayer mp;
if(mp.isInitialized())
Log.v("Test", "mp has been initialized. :D ");
else
Log.v("Test", "mp is NOT yet initialized. :( ");
當然,我檢查了API文檔,並沒有這樣的方法,但是有類似的方法嗎?
我正在考慮只是通過我的代碼,只是捕獲拋出的Exception
如果它曾經觸發,但我發現它不優雅。 :P
編輯:
我的代碼打算像這樣:
MediaPlayer mp;
// Lorem ipsum dolor sit amet consectetur adipisicing...
if(mp.isInitialized)
{
mp.stop();
}
當一個方法聲明它拋出異常時,使用該方法時,您有兩個選擇。 聲明您的方法以使用throws
關鍵字也拋出Exception(可以說是通過了),或者catch
該異常。 你必須做其中一件事。
即使文檔包含一個isInitialized()
方法,如果方法仍然拋出IllegalStateException
,你仍然必須通過這兩種方法中的一種來處理它們。
另外,捕捉是優雅的,它使您的應用程序不會崩潰(崩潰不是優雅的),並讓您知道出了什么問題。 如果您有很多媒體播放器調用(例如使用同一方法接二連三),則可以將它們全部放在一個try/catch
塊下。
使用try和catch繞過mediaPlayer方法調用,如果拋出IllegalStateException,則它不會初始化
try {
mediaPlayer.isPlaying();
} catch(IllegalStateException e) {
// media player is not initialized
}
兩個可能的想法:
根據您的“預期”代碼,為什么不能使用isPlaying()
方法代替所需的isInitialized()
? 您是否只想在實際播放某些內容時調用mp.stop()
?
如何將mp.stop()或任何內容放入OnPreparedListener中 ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.