0

我正在使用名为Android无线应用程序开发第二版2009(L.Darcey & S.Conder,由Addison Wesley出版)的书作为我的课程文献目前正在开发Android应用程序。在本书的第三章中,您将使用MediaPlayer类来启动媒体播放器对象,以使用下面的此方法将MP3文件传输到您的应用程序。Android MediaPlayer Uri.parse问题(Api 15)

public void playMusicFromWeb() { 
    try { 
     Uri file = Uri.parse("http://downloads.bbc.co.uk/podcasts/6music/adamandjoe/adamandjoe_20111231-1430a.mp3"); 
     mp = MediaPlayer.create(this, file); 
     mp.start(); 
    } 
    catch (Exception e) { 
     Log.e(DEBUG_TAG, "Player failed", e); 
    } 
} 

快乐的日子,这一切在API 8(这是本书的用途)中工作得很好。然而,试图在更高的API中使用这种方法,特别是在编写最新的API时,我得到了一个NullPointerException抛出。调试使我不明智,因为file变量似乎保持字符串值罚款,但它不会转化为功能的MP3流。我尝试了各种不同的方法,使用prepare(); prepareAsync(); setDataSource(); reset();等,但似乎没有任何工作。你会认为我的老师能够帮助我,但他们显然不知道该怎么做。 我现在假设流的这种方式必须是过时的更高的API的比8.我会很感激,如果有人可以照如何在API 15

回答

0

它是那样简单加入这一行:

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

的清单文件!

0

我认为你必须做一个流MP3文件的光比那更多的。 Here是做你想要的一个例子:

0
  1. 页眉的URL的content-type可能是坏的。

  2. 你可以试试这个语法:

    MediaPlayer mp = new MediaPlayer(); 
    mp.setDataSource(URL_OF_FILE); 
    mp.prepare(); 
    mp.start(); 
    

    若见NullPointerException遗体。

  3. 您还可以查看更近的tutorial on this particular subject

+0

不幸的是,这不适用于API 15 :(无论如何感谢您的帮助 – Linn