Android Internet Radio(VitamioBundle)(一)


<html>
<head>
<title>MainActivity.java</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
.ln { color: rgb(0,0,0); font-weight: normal; font-style: normal; }
.s0 { color: rgb(204,120,50); }
.s1 { color: rgb(169,183,198); }
.s2 { color: rgb(106,135,89); }
.s3 { color: rgb(128,128,128); }
.s4 { color: rgb(128,128,128); font-style: italic; }
</style>
</head>
<BODY BGCOLOR="#2b2b2b">
<TABLE CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#C0C0C0" >
<TR><TD><CENTER>
<FONT FACE="Arial, Helvetica" COLOR="#000000">
MainActivity.java</FONT>
</center></TD></TR></TABLE>
<pre>


<a name="l1"><span class="ln">1    </span></a><span class="s0">package </span><span class="s1">com.ontheroad.www.radiodemo</span><span class="s0">;</span><span class="s1"> 
<a name="l2"><span class="ln">2    </span></a> 
<a name="l3"><span class="ln">3    </span></a></span><span class="s0">import </span><span class="s1">android.app.Activity</span><span class="s0">;</span><span class="s1"> 
<a name="l4"><span class="ln">4    </span></a></span><span class="s0">import </span><span class="s1">android.content.Intent</span><span class="s0">;</span><span class="s1"> 
<a name="l5"><span class="ln">5    </span></a></span><span class="s0">import </span><span class="s1">android.os.Bundle</span><span class="s0">;</span><span class="s1"> 
<a name="l6"><span class="ln">6    </span></a></span><span class="s0">import </span><span class="s1">android.view.View</span><span class="s0">;</span><span class="s1"> 
<a name="l7"><span class="ln">7    </span></a></span><span class="s0">import </span><span class="s1">android.widget.AdapterView</span><span class="s0">;</span><span class="s1"> 
<a name="l8"><span class="ln">8    </span></a></span><span class="s0">import </span><span class="s1">android.widget.ArrayAdapter</span><span class="s0">;</span><span class="s1"> 
<a name="l9"><span class="ln">9    </span></a></span><span class="s0">import </span><span class="s1">android.widget.ListView</span><span class="s0">;</span><span class="s1"> 
<a name="l10"><span class="ln">10   </span></a></span><span class="s0">import </span><span class="s1">android.widget.Toast</span><span class="s0">;</span><span class="s1"> 
<a name="l11"><span class="ln">11   </span></a> 
<a name="l12"><span class="ln">12   </span></a></span><span class="s0">import </span><span class="s1">com.ontheroad.www.radiodemo.RadioData.RadioSource</span><span class="s0">;</span><span class="s1"> 
<a name="l13"><span class="ln">13   </span></a></span><span class="s0">import </span><span class="s1">com.ontheroad.www.radiodemo.RadioService.AudioMediaPlay</span><span class="s0">;</span><span class="s1"> 
<a name="l14"><span class="ln">14   </span></a></span><span class="s0">import </span><span class="s1">com.ontheroad.www.radiodemo.RadioService.RadioService</span><span class="s0">;</span><span class="s1"> 
<a name="l15"><span class="ln">15   </span></a> 
<a name="l16"><span class="ln">16   </span></a></span><span class="s0">import </span><span class="s1">java.io.IOException</span><span class="s0">;</span><span class="s1"> 
<a name="l17"><span class="ln">17   </span></a></span><span class="s0">import </span><span class="s1">java.io.InputStream</span><span class="s0">;</span><span class="s1"> 
<a name="l18"><span class="ln">18   </span></a></span><span class="s0">import </span><span class="s1">java.util.List</span><span class="s0">;</span><span class="s1"> 
<a name="l19"><span class="ln">19   </span></a></span><span class="s0">import </span><span class="s1">java.util.Map</span><span class="s0">;</span><span class="s1"> 
<a name="l20"><span class="ln">20   </span></a> 
<a name="l21"><span class="ln">21   </span></a> 
<a name="l22"><span class="ln">22   </span></a></span><span class="s0">public class </span><span class="s1">MainActivity </span><span class="s0">extends </span><span class="s1">Activity { 
<a name="l23"><span class="ln">23   </span></a>    List&lt;RadioSource&gt; radios = </span><span class="s0">null;</span><span class="s1"> 
<a name="l24"><span class="ln">24   </span></a> 
<a name="l25"><span class="ln">25   </span></a>    Intent intent</span><span class="s0">;</span><span class="s1"> 
<a name="l26"><span class="ln">26   </span></a>    List&lt;Map&lt;String</span><span class="s0">,</span><span class="s1">String&gt;&gt; list</span><span class="s0">;</span><span class="s1"> 
<a name="l27"><span class="ln">27   </span></a>    </span><span class="s0">private </span><span class="s1">String url</span><span class="s0">;</span><span class="s1"> 
<a name="l28"><span class="ln">28   </span></a> 
<a name="l29"><span class="ln">29   </span></a>    </span><span class="s0">private </span><span class="s1">ListView radioview</span><span class="s0">;</span><span class="s1"> 
<a name="l30"><span class="ln">30   </span></a>    </span><span class="s0">private </span><span class="s1">ArrayAdapter&lt;String&gt; adapter</span><span class="s0">;</span><span class="s1"> 
<a name="l31"><span class="ln">31   </span></a> 
<a name="l32"><span class="ln">32   </span></a>    @Override 
<a name="l33"><span class="ln">33   </span></a>    </span><span class="s0">protected void </span><span class="s1">onCreate(Bundle savedInstanceState) { 
<a name="l34"><span class="ln">34   </span></a>        </span><span class="s0">super</span><span class="s1">.onCreate(savedInstanceState)</span><span class="s0">;</span><span class="s1"> 
<a name="l35"><span class="ln">35   </span></a>        setContentView(R.layout.activity_main)</span><span class="s0">;</span><span class="s1"> 
<a name="l36"><span class="ln">36   </span></a> 
<a name="l37"><span class="ln">37   </span></a> 
<a name="l38"><span class="ln">38   </span></a>        </span><span class="s0">if </span><span class="s1">(!io.vov.vitamio.LibsChecker.checkVitamioLibs(</span><span class="s0">this</span><span class="s1">)) 
<a name="l39"><span class="ln">39   </span></a>            </span><span class="s0">return;</span><span class="s1"> 
<a name="l40"><span class="ln">40   </span></a> 
<a name="l41"><span class="ln">41   </span></a>        radioview = (ListView) findViewById(R.id.listview_radio)</span><span class="s0">;</span><span class="s1"> 
<a name="l42"><span class="ln">42   </span></a> 
<a name="l43"><span class="ln">43   </span></a>        adapter = </span><span class="s0">new </span><span class="s1">ArrayAdapter&lt;String&gt;(</span><span class="s0">this, </span><span class="s1">android.R.layout.simple_list_item_1)</span><span class="s0">;</span><span class="s1"> 
<a name="l44"><span class="ln">44   </span></a>        radioview.setAdapter(adapter)</span><span class="s0">;</span><span class="s1"> 
<a name="l45"><span class="ln">45   </span></a> 
<a name="l46"><span class="ln">46   </span></a>        InputStream in = getAssetsStream(</span><span class="s2">&quot;radio2.xml&quot;</span><span class="s1">)</span><span class="s0">;</span><span class="s1"> 
<a name="l47"><span class="ln">47   </span></a>        </span><span class="s0">try </span><span class="s1">{ 
<a name="l48"><span class="ln">48   </span></a>            radios = RadioService.getRadio(in)</span><span class="s0">;</span><span class="s1"> 
<a name="l49"><span class="ln">49   </span></a>            </span><span class="s3">//testMyRadios();</span><span class="s1"> 
<a name="l50"><span class="ln">50   </span></a> 
<a name="l51"><span class="ln">51   </span></a>        } </span><span class="s0">catch </span><span class="s1">(Exception e) { 
<a name="l52"><span class="ln">52   </span></a>            e.printStackTrace()</span><span class="s0">;</span><span class="s1"> 
<a name="l53"><span class="ln">53   </span></a>        }</span><span class="s4">/**/</span><span class="s1"> 
<a name="l54"><span class="ln">54   </span></a> 
<a name="l55"><span class="ln">55   </span></a>        </span><span class="s0">for </span><span class="s1">(RadioSource radio : radios) { 
<a name="l56"><span class="ln">56   </span></a>            adapter.add(radio.getName())</span><span class="s0">;</span><span class="s1"> 
<a name="l57"><span class="ln">57   </span></a> 
<a name="l58"><span class="ln">58   </span></a>        } 
<a name="l59"><span class="ln">59   </span></a> 
<a name="l60"><span class="ln">60   </span></a> 
<a name="l61"><span class="ln">61   </span></a>        radioview.setOnItemClickListener(</span><span class="s0">new </span><span class="s1">AdapterView.OnItemClickListener() { 
<a name="l62"><span class="ln">62   </span></a>            @Override 
<a name="l63"><span class="ln">63   </span></a>            </span><span class="s0">public void </span><span class="s1">onItemClick(AdapterView&lt;?&gt; parent</span><span class="s0">, </span><span class="s1">View view</span><span class="s0">, int </span><span class="s1">position</span><span class="s0">, long </span><span class="s1">id) { 
<a name="l64"><span class="ln">64   </span></a>                Toast.makeText(getApplication()</span><span class="s0">, </span><span class="s1">radios.get(position).getName()</span><span class="s0">, </span><span class="s1">Toast.LENGTH_SHORT).show()</span><span class="s0">;</span><span class="s1"> 
<a name="l65"><span class="ln">65   </span></a>                url = radios.get(position).getUrl()</span><span class="s0">;</span><span class="s1"> 
<a name="l66"><span class="ln">66   </span></a>                play(url)</span><span class="s0">;</span><span class="s1"> 
<a name="l67"><span class="ln">67   </span></a> 
<a name="l68"><span class="ln">68   </span></a>            } 
<a name="l69"><span class="ln">69   </span></a>        })</span><span class="s0">;</span><span class="s1"> 
<a name="l70"><span class="ln">70   </span></a> 
<a name="l71"><span class="ln">71   </span></a>    } 
<a name="l72"><span class="ln">72   </span></a> 
<a name="l73"><span class="ln">73   </span></a>    </span><span class="s0">public void </span><span class="s1">play(String url) { 
<a name="l74"><span class="ln">74   </span></a>        intent = </span><span class="s0">new </span><span class="s1">Intent(</span><span class="s0">this, </span><span class="s1">AudioMediaPlay.</span><span class="s0">class</span><span class="s1">)</span><span class="s0">;</span><span class="s1"> 
<a name="l75"><span class="ln">75   </span></a>        intent.putExtra(</span><span class="s2">&quot;url&quot;</span><span class="s0">, </span><span class="s1">url)</span><span class="s0">;</span><span class="s1"> 
<a name="l76"><span class="ln">76   </span></a>        startService(intent)</span><span class="s0">;</span><span class="s1"> 
<a name="l77"><span class="ln">77   </span></a>    } 
<a name="l78"><span class="ln">78   </span></a> 
<a name="l79"><span class="ln">79   </span></a> 
<a name="l80"><span class="ln">80   </span></a>    @Override 
<a name="l81"><span class="ln">81   </span></a>    </span><span class="s0">protected void </span><span class="s1">onStop() { 
<a name="l82"><span class="ln">82   </span></a>        </span><span class="s0">super</span><span class="s1">.onStop()</span><span class="s0">;</span><span class="s1"> 
<a name="l83"><span class="ln">83   </span></a> 
<a name="l84"><span class="ln">84   </span></a>        </span><span class="s3">//mediaservice.audioStop();</span><span class="s1"> 
<a name="l85"><span class="ln">85   </span></a> 
<a name="l86"><span class="ln">86   </span></a> 
<a name="l87"><span class="ln">87   </span></a>    } 
<a name="l88"><span class="ln">88   </span></a> 
<a name="l89"><span class="ln">89   </span></a> 
<a name="l90"><span class="ln">90   </span></a>    </span><span class="s0">public void </span><span class="s1">buttonConture(View view) { 
<a name="l91"><span class="ln">91   </span></a>        </span><span class="s0">switch </span><span class="s1">(view.getId()) { 
<a name="l92"><span class="ln">92   </span></a>            </span><span class="s0">case </span><span class="s1">R.id.audio_contury: 
<a name="l93"><span class="ln">93   </span></a>                stopService(intent)</span><span class="s0">;</span><span class="s1"> 
<a name="l94"><span class="ln">94   </span></a>                </span><span class="s0">break;</span><span class="s1"> 
<a name="l95"><span class="ln">95   </span></a> 
<a name="l96"><span class="ln">96   </span></a>        } 
<a name="l97"><span class="ln">97   </span></a> 
<a name="l98"><span class="ln">98   </span></a>    } 
<a name="l99"><span class="ln">99   </span></a> 
<a name="l100"><span class="ln">100  </span></a>    </span><span class="s0">private </span><span class="s1">InputStream getAssetsStream(String fileName) { 
<a name="l101"><span class="ln">101  </span></a>        InputStream in = </span><span class="s0">null;</span><span class="s1"> 
<a name="l102"><span class="ln">102  </span></a>        </span><span class="s0">try </span><span class="s1">{ 
<a name="l103"><span class="ln">103  </span></a>            in = getResources().getAssets().open(fileName)</span><span class="s0">;</span><span class="s1"> 
<a name="l104"><span class="ln">104  </span></a>        } </span><span class="s0">catch </span><span class="s1">(IOException e) { 
<a name="l105"><span class="ln">105  </span></a>            e.printStackTrace()</span><span class="s0">;</span><span class="s1"> 
<a name="l106"><span class="ln">106  </span></a>        } </span><span class="s0">catch </span><span class="s1">(Exception e) { 
<a name="l107"><span class="ln">107  </span></a>            e.printStackTrace()</span><span class="s0">;</span><span class="s1"> 
<a name="l108"><span class="ln">108  </span></a>        } 
<a name="l109"><span class="ln">109  </span></a>        </span><span class="s0">return </span><span class="s1">in</span><span class="s0">;</span><span class="s1"> 
<a name="l110"><span class="ln">110  </span></a>    } 
<a name="l111"><span class="ln">111  </span></a> 
<a name="l112"><span class="ln">112  </span></a>} 
<a name="l113"><span class="ln">113  </span></a> 
<a name="l114"><span class="ln">114  </span></a></span></pre>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vitamio =============== Vitamio is an open multimedia framework for Android and iOS, with full and real hardware accelerated decoder and renderer. New features ------------ Only few important features are listed here, we have fix many bugs and may introduce some new bugs. 1. The latest FFmpeg 2.0 git version, which should fix most playback issues, or bring some issues. 2. Support most FFmpeg AVOptions, which enables custom HTTP headers support. 3. Support more hardwares, e.g. X86 or MIPS. 4. Improve streaming, especially support adaptive bitrate streaming, you need open manually. 5. OpenSSL included, so some SSL related protocols, such as https, tls, rtmps, rtmpts, are supported. 6. Playback speed control from 0.5x to 2.0x. 7. Audio amplify to 2x volume. 8. Improved subtitle support, including external bitmap subtitles. 9. Cache online video to local storage and can be reused until you delete the cache file. 10. More MediaPlayer API, e.g. `getMetadata`, `getVideoTrack`. 11. The full Java code is open to all developers, modify and contribute is welcome. 12. Support RGBA\_8888 rendering, spport switching RGB\_565 or RGBA\_8888 to video rendering. 13. Enhance the hardware decoding in Android 16+. 14. Support ARMV6 CPU, may have some bugs. How to use ---------- please see [the website](https://github.com/yixia/VitamioBundle/wiki) License ------- Please see [License](http://www.vitamio.org/en/License) ## Google+ Vitamio Developers Community on Google+ [http://goo.gl/fhCDTD](http://goo.gl/fhCDTD)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值