首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Media Player Url特定问题

Android Media Player Url特定问题
EN

Stack Overflow用户
提问于 2015-06-01 18:05:39
回答 1查看 4.6K关注 0票数 5

我在我的一个android项目中工作,在这个项目中我正在用媒体播放器播放声音。当我使用this网址播放歌曲时,我得到一些如下的IOException,但歌曲在MediaPlayer中播放良好。问题应该是什么?

代码语言:javascript
复制
public void startMediaPlayer(String url) {

    Log.e("urlToPlay==>",url);
    // start new song for play

    if(mediaPlayer==null){
        mediaPlayer=new MediaPlayer();
    }else{
        mediaPlayer.reset();
    }
    Uri myUri1 = Uri.parse(url);

    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {

        mediaPlayer.setDataSource(getActivity(), myUri1);
        mediaPlayer.prepareAsync();

        mediaPlayer.setOnPreparedListener(new OnPreparedListener() {

            @Override
            public void onPrepared(MediaPlayer player) {
                playPause=true;
                player.start();
                mediaFileLengthInMilliseconds = player.getDuration(); // gets the song length in milliseconds from URL

            } 
        });

        mediaPlayer.setOnCompletionListener(new OnCompletionListener() {

            @Override
            public void onCompletion(MediaPlayer mp) {
                playPause=false;
           }
        });

        mediaPlayer.setOnErrorListener(new OnErrorListener() {

            @Override
            public boolean onError(MediaPlayer arg0, int arg1, int arg2) {

                Log.e("onError==>","Something went wrong"+arg1+"");
                Log.e("onError==>","Something went wrong"+arg2+"");
                return false;
            }
        });

    } catch (IllegalArgumentException e) {
        e.printStackTrace();
        mediaPlayer.release();
    } catch (SecurityException e) {
        e.printStackTrace();
        mediaPlayer.release();
    } catch (IllegalStateException e) {
        e.printStackTrace();
        mediaPlayer.release();
    } catch (IOException e) {
        e.printStackTrace();
        mediaPlayer.release();
    }
}

播放文件时出现以下异常

代码语言:javascript
复制
06-01 15:30:24.758: D/MediaPlayer(12450): setDataSource IOException happend : 
06-01 15:30:24.758: D/MediaPlayer(12450): java.io.FileNotFoundException:  No content provider: http://pleer.com/browser-extension/files/72338325d4W.mp3
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1053)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:907)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:834)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:969)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.media.MediaPlayer.setDataSource(MediaPlayer.java:923)
06-01 15:30:24.758: D/MediaPlayer(12450):   at com.hyper.musicapp.fragments.SearchFragmentMusic.startMediaPlayer(SearchFragmentMusic.java:998)
06-01 15:30:24.758: D/MediaPlayer(12450):   at com.hyper.musicapp.fragments.SearchFragmentMusic$SearchSoundCloudTrackAdapter$1.onClick(SearchFragmentMusic.java:473)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.view.View.performClick(View.java:4639)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.view.View$PerformClick.run(View.java:19252)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.os.Handler.handleCallback(Handler.java:733)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.os.Handler.dispatchMessage(Handler.java:95)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.os.Looper.loop(Looper.java:146)
06-01 15:30:24.758: D/MediaPlayer(12450):   at android.app.ActivityThread.main(ActivityThread.java:5511)
06-01 15:30:24.758: D/MediaPlayer(12450):   at java.lang.reflect.Method.invokeNative(Native Method)
06-01 15:30:24.758: D/MediaPlayer(12450):   at java.lang.reflect.Method.invoke(Method.java:515)
06-01 15:30:24.758: D/MediaPlayer(12450):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
06-01 15:30:24.758: D/MediaPlayer(12450):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
06-01 15:30:24.758: D/MediaPlayer(12450):   at dalvik.system.NativeStart.main(Native Method)
06-01 15:30:24.758: D/MediaPlayer(12450): Couldn't open file on client side, trying server side
EN

回答 1

Stack Overflow用户

发布于 2015-11-16 19:47:23

尝试添加类似"file://“或"http://”的url方案。当我在尝试播放本地文件时遇到同样的异常时,这对我很有效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30570666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档