【问题标题】:Android Mp3 play from url从 url 播放 Android Mp3
【发布时间】:2014-02-16 01:54:52
【问题描述】:

如何使用在线 mp3 网址运行以下教程?我尝试替换网址,但它似乎不起作用。我想使用相同的代码,但使用 url。有人有什么建议吗?

教程链接:http://www.tutorialspoint.com/android/android_mediaplayer.htm mp3 网址为:http://searchgurbani.com/audio/sggs/1.mp3

【问题讨论】:

    标签: android media-player mp3


    【解决方案1】:

    通过网址

        try {
            String url = "http://www.all-birds.com/Sound/western%20bluebird.wav"; // your URL here
            MediaPlayer mediaPlayer = new MediaPlayer();
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            mediaPlayer.setDataSource(url);
            mediaPlayer.prepare(); // might take long! (for buffering, etc)
            mediaPlayer.start();
        }catch (Exception e){
            e.printStackTrace();
        }
    

    通过 res ---> inside --> row 文件夹

    MediaPlayer mp2 = MediaPlayer.create(this, R.raw.genuine_);
    mp2.start();
    

    【讨论】:

    • setAudioStreamType 已弃用
    • 我是通过以下方式做到的:mediaPlayer.setAudioAttributes(AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build()) mediaPlayer.setDataSource(musicURL) mediaPlayer.prepare() mediaPlayer.start()
    【解决方案2】:

    如何播放 /raw 文件夹中的 .mp3:

    下载 .mp3 文件,将其保存到 song.mp3 并粘贴到 /raw 文件夹中。 如果您没有 /raw 文件夹,只需将其创建到 /res 文件夹中即可。

    此示例不从 Internet 加载 .mp3,而是从资源中播放 .mp3。

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

    如何play an .mp3 from the url:

    将示例的oncreate()方法更改为:

      @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main_video);
          songName = (TextView)findViewById(R.id.textView4);
          startTimeField =(TextView)findViewById(R.id.textView1);
          endTimeField =(TextView)findViewById(R.id.textView2);
          seekbar = (SeekBar)findViewById(R.id.seekBar1);
          playButton = (ImageButton)findViewById(R.id.imageButton1);
          pauseButton = (ImageButton)findViewById(R.id.imageButton2);
          songName.setText("song.mp3");    
        //mediaPlayer = MediaPlayer.create(this, R.raw.song);
          Uri myUri = Uri.parse("http://searchgurbani.com/audio/sggs/1.mp3");      
          try {
              mediaPlayer = new MediaPlayer();
              mediaPlayer.setDataSource(this, myUri);
              mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
              mediaPlayer.prepare(); //don't use prepareAsync for mp3 playback
              mediaPlayer.start();
           } catch (IOException e) {           
              e.printStackTrace();
          }                  
          seekbar.setClickable(false);
          pauseButton.setEnabled(false);
    
       }
    

    这样您就可以从指定的 url 播放音频 mp3。

    别忘了添加

     <uses-permission android:name="android.permission.INTERNET"/>
    

    进入你的 Manifest.xml

    【讨论】:

    • 对不起,我的意思是我需要从 url 播放文件而不是下载的文件。我已经能够做到这一点,但是由于我有这么多文件并且下载它们会增加大小,我需要使用一种方式来使用 url。
    • 你有这个权限吗?
    • 天啊!!!完美的!!现在终于可以工作了。非常感谢您的解决方案。 :D
    • @Elenasys 如何从 2 个 URL 依次播放 2 首歌曲?
    • 如果 mp3 来自互联网,您实际上必须使用 prepareAsync(),否则您将锁定您奇妙的 UI 线程数秒。不过,调用本地文件准备是可以的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    相关资源
    最近更新 更多