Android Studio中的Java MediaPlayer仅播放一秒钟的音频,然后停止。

huangapple go评论96阅读模式
英文:

Android Studio Java MediaPlayer plays only the first second of audio and then stops

问题

我尝试让MediaPlayer播放大约两分钟长的mp3音频,但只播放了第一秒,然后播放器就停止了。我尝试过mp3和wav格式。以下是我的代码:

  1. package com.pi.audiodemo;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.media.MediaPlayer;
  4. import android.os.Bundle;
  5. public class MainActivity extends AppCompatActivity {
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. MediaPlayer mediaPlayer = (MediaPlayer) MediaPlayer.create(this, R.raw.dumb);
  11. mediaPlayer.start();
  12. }
  13. }
英文:

I'm trying to have MediaPlayer play a roughly two minute long mp3 audio, however only the first second is played then the player stops. I've tired both mp3 and wav formats. Here's my code:

  1. package com.pi.audiodemo;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.media.MediaPlayer;
  4. import android.os.Bundle;
  5. public class MainActivity extends AppCompatActivity {
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. MediaPlayer mediaPlayer = (MediaPlayer) MediaPlayer.create(this, R.raw.dumb);
  11. mediaPlayer.start();
  12. }
  13. }
  14. </details>
  15. # 答案1
  16. **得分**: 1
  17. 你在`onCreate`函数内创建了`MediaPlayer`。因此,在函数返回后,它将被删除。尝试以下代码:
  18. ```Java
  19. package com.pi.audiodemo;
  20. import androidx.appcompat.app.AppCompatActivity;
  21. import android.media.MediaPlayer;
  22. import android.os.Bundle;
  23. public class MainActivity extends AppCompatActivity {
  24. MediaPlayer mediaPlayer;
  25. @Override
  26. protected void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.activity_main);
  29. mediaPlayer = (MediaPlayer) MediaPlayer.create(this, R.raw.dumb);
  30. mediaPlayer.start();
  31. }
  32. }
英文:

You create MediaPlayer within the onCreate function. So it will be deleted right after function returns. Try the following code:

  1. package com.pi.audiodemo;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.media.MediaPlayer;
  4. import android.os.Bundle;
  5. public class MainActivity extends AppCompatActivity {
  6. MediaPlayer mediaPlayer;
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11. mediaPlayer = (MediaPlayer) MediaPlayer.create(this, R.raw.dumb);
  12. mediaPlayer.start();
  13. }
  14. }

huangapple
  • 本文由 发表于 2020年10月27日 21:31:37
  • 转载请务必保留本文链接:https://go.coder-hub.com/64555577.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定