android支持MMS媒体流的网络电台

部分代码:

public void onCreate(Bundle paramBundle)

    {

       super.onCreate(paramBundle);

       requestWindowFeature(Window.FEATURE_NO_TITLE);

       setContentView(R.layout.main);

       System.loadLibrary("mmsPlayer");

       this.btnPlay = ((Button) findViewById(R.id.btn));

       aboutBtn = (Button) findViewById(R.id.aboutBtn);

       this.tvScroll = (TextView) findViewById(R.id.tvScroll);

       tvScroll.requestFocus();

       try

       {

           System.loadLibrary("mmsPlayer");

           Log.v("MMS", "load lib success");

       } catch (UnsatisfiedLinkError localUnsatisfiedLinkError)

       {

           localUnsatisfiedLinkError.printStackTrace();

       }

       initmms();

       btnPlay.setTag(STOP);

       btnPlay.setEnabled(false);

       // 更新

       versionCheckExe();

       if (com.TourismBroadcast.Util.NetWorkCheck

              .note_Intent(MmsPlayerActivity.this))

       {

           MmsPlayerActivity.this

                  .openPlayer("mms://mediasrv2.iptv.xmg.com.cn/tour");

           isFirstLogin=false;

       } else

       {

           btnPlay.setEnabled(true);

           btnPlay.setBackgroundResource(R.drawable.play);

           btnPlay.setTag(REPLAY);

           Toast toast = Toast.makeText(getBaseContext(), "请重新链接...",

                  Toast.LENGTH_SHORT);

           toast.show();

       }

 

       btnClickListener();

    }

 

    /**

     * 点击事件

     */

    private void btnClickListener()

    {

 

       aboutBtn.setOnClickListener(new OnClickListener()

       {

 

           @Override

           public void onClick(View v)

           {

              startActivity(new Intent(MmsPlayerActivity.this,AboutActivity.class));

           }

       });

       btnPlay.setOnClickListener(new OnClickListener()

       {

           public void onClick(View v)

           {

              if (btnPlay.getTag().equals(PLAY))

              {

                  if (com.TourismBroadcast.Util.NetWorkCheck

                         .checkNetWork(MmsPlayerActivity.this))

                  {

                     MmsPlayerActivity.this.track.continueplay();

                     btnPlay.setBackgroundResource(R.drawable.stop);

                     btnPlay.setTag(STOP);

                  } else

                  {

                     btnPlay.setBackgroundResource(R.drawable.play);

                     btnPlay.setTag(REPLAY);

                     showNoticDialog();

                  }

              } else if (btnPlay.getTag().equals(STOP))

              {

                  if (com.TourismBroadcast.Util.NetWorkCheck

                         .checkNetWork(MmsPlayerActivity.this))

                  {

                     MmsPlayerActivity.this.track.pause();

                     btnPlay.setBackgroundResource(R.drawable.play);

                     btnPlay.setTag(PLAY);

                  } else

                  {

                     btnPlay.setBackgroundResource(R.drawable.play);

                     btnPlay.setTag(REPLAY);

                     showNoticDialog();

                  }

              } else if (btnPlay.getTag().equals(REPLAY))

              {

                  if (isFirstLogin)

                  {

                     Log.v("Replay", "firstLogin");

                     if (com.TourismBroadcast.Util.NetWorkCheck

                            .note_Intent(MmsPlayerActivity.this))

                     {

                         btnPlay.setEnabled(false);

                         MmsPlayerActivity.this

                                .openPlayer("mms://mediasrv2.iptv.xmg.com.cn/tour");

                         btnPlay.setBackgroundResource(R.drawable.stop);

                         btnPlay.setTag(STOP);

                         isFirstLogin = false;

                     } else

                     {

                         Toast toast = Toast.makeText(

                                MmsPlayerActivity.this, "请重新链接...",

                                Toast.LENGTH_SHORT);

                         toast.show();

                         btnPlay.setEnabled(true);

                         showNoticDialog();

                     }

 

                  }

                  else {

                     Log.v("Replay", "firstLoginnonononononono");

                     if (com.TourismBroadcast.Util.NetWorkCheck

                            .checkNetWork(MmsPlayerActivity.this))

                     {

                         MmsPlayerActivity.this.track.continueplay();

                         btnPlay.setBackgroundResource(R.drawable.stop);

                         btnPlay.setTag(STOP);

                     } else

                     {

                         btnPlay.setBackgroundResource(R.drawable.play);

                         btnPlay.setTag(REPLAY);

                         showNoticDialog();

                     }

                  }

              }

 

           }

       });

    }

 

    public void onDestroy()

    {

       super.onDestroy();

    }

 

    private int javawmaDecoder()

    {

      

        int i = 0;

       try

       {

           i = wmaDecoder();

 

       } catch (Exception localException)

       {

           localException.printStackTrace();

           // Log.e("mms", "javawmaDecoder 发生异常" +

           // localException.getMessage());

       }

      

       return i;

       }

      

   

 

 

    /**

     * 调用starplay

     *

     * @param paramString

     */

    private void openPlayer(String paramString)

    {

 

       if (this.mthread != null)

       {

           this.mthread = null;

       }

       this.mthread = new DecoderThread();

       this.mthread.SetUrl(paramString);

       this.mthread.start();

    }

 

    /**

     * 播放

     *

     * @param paramString

     * @return

     */

    private int startPlay(String paramString)

    {

       Log.v("paramString", paramString + "1111111111111111");

       int i = openmms(paramString);// 初始化mms数据流

       Log.v("paramString", paramString);

       if (i != 0)

       {

           i = closemms();

           return i;

       }

       int j = 0;

       int l = 0;

       j = wmachannels();

 

       l = wmabit();

 

       i = javawmaDecoder();

       Log.v("iiiiiiiiiiiiiiiiiiiiiiiiiiii", i + "2222222222222222222");

       this.track = new mmsTrack(wmasamplerate(), j, l);

       this.track.init();

       this.out = 1;

       localPlayerThread = new PlayerThread();

       Log.v("startPlayerThread", "22222222222222222222222");

       localPlayerThread.start();

 

       while (true)

       {

           if (i <= 0)

              this.out = 0;

           if (!com.TourismBroadcast.Util.NetWorkCheck

                  .note_Intent(MmsPlayerActivity.this))

           {

              // localPlayerThread=null;

//            MmsPlayerActivity.this.track.release();

//            MmsPlayerActivity.this.track.pause();

//            btnPlay.setBackgroundResource(R.drawable.stop);

//            btnPlay.setTag(PLAY);

              handler.sendEmptyMessage(ChageToStop);

              isReconnect = true;

           } else

           {

              if (isReconnect == false)

              {

                  try

                  {

                     i = javawmaDecoder();

                     Log.v("iiiiiiiiiiiiiiiiiiiiiiiiiiii", i + "11111111111");

                  } catch (Exception localException)

                  {

                     localException.printStackTrace();

                  }

              } else

              {

                  initmms();

                  i = closemms();

                  i = openmms("file://mms://mediasrv2.iptv.xmg.com.cn/tour");// 初始化mms数据流

                                                                      // i=opi;

                  if (i != 0)

                  {

                     i = closemms();

                     return i;

                  }

                  Log.v("iiiiiiiiiiiiiiiiiiiiiiiiiiii", i

                         + "2222222222111111111");

//                this.track = new mmsTrack(wmasamplerate(), j, l);

//                this.track.init();

                  this.out = 1;

                  Log.v("startPlayerThread", "2222222222221111111111111");

//                MmsPlayerActivity.this.track.continueplay();

//                btnPlay.setBackgroundResource(R.drawable.stop);

//                btnPlay.setTag(PLAY);

                  isReconnect = false;

 

              }

 

由于基于MMS格式的项目,网上资源很少,我们开发的这个尤为宝贵,同时这也是公司版权所在,不可能将整个项目公开。如果你急需要这样的项目,被这样的项目烦恼着。我们可以帮你,请加我们团队QQ:657406909

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值