python 代碼html
1 def application2(environ, start_response): 2 start_response("200 ok", [('Content-Type', 'audio/mp3')]) 3 with open("/Users/zhangyan/PycharmProjects/web/WebDemoApp/static/初音ミク,小野道 - 任性.mp3", mode="rb") as f: 4 data = f.read() 5 return [data]
Android 端java
1 public class MainActivity extends AppCompatActivity implements View.OnClickListener, MediaPlayer.OnPreparedListener { 2 3 Button player; 4 MediaPlayer mediaPlayer; 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 player = (Button) findViewById(R.id.btnId_main_player); 11 player.setOnClickListener(this); 12 } 13 14 @Override 15 public void onClick(View view) { 16 switch (view.getId()){ 17 case R.id.btnId_main_player: 18 playOnline(); 19 break; 20 } 21 } 22 23 private void playOnline() { 24 if (mediaPlayer == null){ 25 mediaPlayer = new MediaPlayer(); 26 mediaPlayer.setOnPreparedListener(this); 27 } 28 29 mediaPlayer.reset(); 30 try { 31 mediaPlayer.setDataSource("http://10.128.34.201:8000"); 32 mediaPlayer.prepareAsync(); 33 } catch (IOException e) { 34 e.printStackTrace(); 35 } 36 } 37 38 39 @Override 40 protected void onDestroy() { 41 super.onDestroy(); 42 if (mediaPlayer != null){ 43 mediaPlayer.stop(); 44 mediaPlayer.release(); 45 mediaPlayer = null; 46 } 47 } 48 49 @Override 50 public void onPrepared(MediaPlayer mediaPlayer) { 51 mediaPlayer.start(); 52 } 53 }
服務端配置好了後,手機端點擊播放按鈕,不一會,萌萌噠初音就開始唱歌了python
小故事:web
之因此會忽然想寫這個 demo,主要是由於樓主好久之前的畢業設計是寫的 Android 播放器,當時不知道爲何在播放在線歌曲的時候失敗了,如今莫名的想弄清楚這個問題,恰好 python 寫後端挺方便的(以前畢設是用 java 寫的後端),因此就嘗試了一下,結果發現能夠正常的播放在線歌曲嘛。後端
同時若是用瀏覽器打開這個地址,瀏覽器會自動播放音樂,注意必須將 Content-Type 設置爲 audio/mp3,若是設置成 text/html,瀏覽器就會以文本的方式顯示了,很感人的一堆亂碼 2333。瀏覽器