簡體   English   中英

檢查Android MediaPlayer是否已初始化

[英]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
}

兩個可能的想法:

  1. 根據您的“預期”代碼,為什么不能使用isPlaying()方法代替所需的isInitialized() 您是否只想在實際播放某些內容時調用mp.stop()

  2. 如何將mp.stop()或任何內容放入OnPreparedListener中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM