MediaPlayer 在线播放音乐

python 代码

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]
Python 后端

Android 端

 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 }
Android 代码

 

服务端配置好了后,手机端点击播放按钮,不一会,萌萌哒初音就开始唱歌了

小故事:

之所以会突然想写这个 demo,主要是因为楼主很久以前的毕业设计是写的 Android 播放器,当时不知道为什么在播放在线歌曲的时候失败了,现在莫名的想弄清楚这个问题,刚好 python 写后端挺方便的(之前毕设是用 java 写的后端),所以就尝试了一下,结果发现可以正常的播放在线歌曲嘛。

同时如果用浏览器打开这个地址,浏览器会自动播放音乐,注意必须将 Content-Type 设置为 audio/mp3,如果设置成 text/html,浏览器就会以文本的方式显示了,很感人的一堆乱码 2333。

 

posted @ 2017-02-08 16:34  章炎  阅读(565)  评论(0编辑  收藏  举报