【问题标题】:Stream and download audio from URL从 URL 流式传输和下载音频
【发布时间】:2013-09-21 06:04:45
【问题描述】:

我正在开发搜索歌曲并能够播放和下载音乐/歌曲的应用程序。我使用了这个网址 http://tinysong.com/Phdj ,这是重定向到音乐网页并在那里播放歌曲。我用下面的代码来播放歌曲。

    //play music
    MediaPlayer mMediaPlayer = new MediaPlayer();
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try{
         mMediaPlayer.setDataSource("http://tinysong.com/Phdj");
            mMediaPlayer.prepareAsync();
                }catch(IOException e){
        e.printStackTrace();
        }
        catch (IllegalArgumentException e){
                e.printStackTrace();    
                }catch (IllegalStateException e){
                e.printStackTrace();
            mMediaPlayer.setOnPreparedListener(new   MediaPlayer.OnPreparedListener() 
                            {

                                @Override
                                public void onPrepared(MediaPlayer mp) 
                                {
                                    mp.start();
                                }
                            });

错误: 09-21 11:26:49.674: I/MediaPlayer(6735): setLPAflag() in 09-21 11:26:49.674: I/MediaPlayer(6735): mContext 为空,无法获取MirrorDisplayStatus!!! 09-21 11:26:49.674: I/MediaPlayer(6735): setLPAflag() out 09-21 11:26:58.693: E/MediaPlayer(6735): 错误 (1, -2147483648) 09-21 11:26:58.693: E/MediaPlayer(6735): 错误 (1,-2147483648)

AndroidMedia Library 是否只能播放 .mp3 格式?我可以从上面的 Url 播放音乐吗?我该怎么做?

【问题讨论】:

    标签: android android-mediaplayer


    【解决方案1】:

    你还没有通过setDataSource()中的上下文

    试试这个

    String path="http://tinysong.com/Phdj";
    
        Uri myUri = Uri.parse(path);
    
                MediaPlayer mp = new MediaPlayer();
                try {
    
                    mp.setDataSource(this, myUri);
                    mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
                    mp.setOnPreparedListener(new OnPreparedListener() {
    
                        @Override
                        public void onPrepared(MediaPlayer mp) {
    
                            mp.start();
                            // TODO Auto-generated method stub
    
                        }
                    });
                    mp.prepareAsync();
                } catch (IllegalArgumentException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (SecurityException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IllegalStateException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    

    【讨论】:

    • 收到此错误:09-21 17:35:50.315: E/MediaPlayer(30342): java.io.FileNotFoundException: 没有内容提供者: tinysong.com/Phdj 09-21 17:35:58.293: E/MediaPlayer(30342): 错误 (1, -2147483648) 09-21 17:35:58.333: E/MediaPlayer(30342): 错误 (1,-2147483648)
    • 您是否创建了对 MediaPlayer 的引用?
    • 抱歉,我是媒体播放器的新手...媒体播放器的引用是什么?
    • 09-21 17:35:50.315: E/MediaPlayer(30342): java.io.FileNotFoundException: 没有内容提供者: tinysong.com/Phdj 09-21 17:35:58.293: E/ MediaPlayer(30342): 错误 (1, -2147483648) 09-21 17:35:58.333: E/MediaPlayer(30342): 错误 (1,-2147483648)
    • 媒体播放器是否只支持.mp3文件?你能检查那个网址并确认我这个网址适合媒体播放器吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2014-08-25
    • 2018-08-27
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多