日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

java media.player_关于Java:如何正确发布Android MediaPlayer

發布時間:2025/3/15 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java media.player_关于Java:如何正确发布Android MediaPlayer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我試圖將一個按鈕添加到我的android應用中,點擊該按鈕時會播放MP3。

我已經使它工作了,但是沒有辦法釋放mediaPlayer對象-因此,即使我離開活動后,它仍然可以播放。如果我在我的react()方法(按下按鈕時調用什么)之外初始化MediaPlayer對象,則它將導致應用程序在活動打開時強制關閉。但是,如果我在react()方法中初始化MediaPlayer,則無法在onQuit()方法中使用mplayer.release。我在這里沒看到什么?

public void react(View view) {

MediaPlayer mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);

mediaPlayer.start();

}

protected void onStop(){

mediaPlayer.release();

mediaPlayer = null;

}

由于明顯的原因而無法工作,并且

MediaPlayer mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);

public void react(View view) {

mediaPlayer.start();

}

protected void onStop(){

mediaPlayer.release();

mediaPlayer = null;

}

使它強制關閉。

更新:

這是整個java類。

public class ToBeOrNot extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_to_be_or_not);

}

MediaPlayer mediaPlayer;

public void react(View view) {

mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);

mediaPlayer.start();

}

protected void onStop(){

mediaPlayer.release();

mediaPlayer = null;

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

//getMenuInflater().inflate(R.menu.activity_to_be_or_not, menu);

// Locate MenuItem with ShareActionProvider

return true;

}

}

我認為它的作用是相對自我解釋的。調用時,它會顯示一些文本以及一個按鈕,輕按該按鈕即可開始播放錄音。當某人按下"后退"按鈕時,它應返回到上一個活動并停止錄制。

感謝您的幫助!

如果您回答了另一個問題,并且想提出一個新問題,則應該打開一個新問題,而不僅僅是編輯該問題。

好吧,我會不想問太多問題。

這是新問題。 stackoverflow.com/questions/15046888/如果您想回答這個問題很棒,謝謝。 或可能有人,或者我可能自己想出答案。

您不能在所有方法之外初始化mediaplayer對象。 如果這樣做,它將嘗試使用尚未創建的上下文。 您需要將其聲明為類變量(方法之外),并在內部對其進行初始化:

MediaPlayer mediaPlayer;

public void react(View view) {

mediaPlayer = MediaPlayer.create(ToBeOrNot.this, R.raw.achord);

mediaPlayer.start();

}

protected void onStop(){

mediaPlayer.release();

mediaPlayer = null;

}

另外,我建議您閱讀Java中的變量范圍。

啊,非常感謝! 那真是一個愚蠢的錯誤。 我意識到范圍是我遇到的麻煩,但是我的大腦無法正常工作,因此我無法考慮如何解決它。

所以我復制了您的示例,現在它運行正常,但是當我按下啟動聲音的按鈕后再按"后退"按鈕時,應用程序強制關閉。 有什么想法嗎?

它有很多潛在的問題。 我建議您提出另一個問題,解釋您在所有生命周期方法(創建,恢復,暫停,停止等)中的工作。 另外,請說明您要執行的操作。

這對我很好。

public class MainActivity extends AppCompatActivity {

MediaPlayer mediaPlayer;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mediaPlayer = MediaPlayer.create(this, R.raw.beep_warning);

final CheckBox checkBox = (CheckBox) findViewById(R.id.checkBox);

checkBox.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (checkBox.isChecked()) {

mediaPlayer.start();

mediaPlayer.setLooping(true);

}

else{

mediaPlayer.pause();

}

}

});

}

@Override

protected void onStop() {

super.onStop();

mediaPlayer.release();

}

總結

以上是生活随笔為你收集整理的java media.player_关于Java:如何正确发布Android MediaPlayer的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。