- 浏览: 167037 次
- 性别:
- 来自: 北京
最新评论
-
温婉柳叶眉:
可以的,测试了。
使用观察者模式完美实现android程序退出 -
crackpot:
真的挺方便的啊
使用框架编写Android程序 -
lehehe:
定位的话,现在用接口不很方便吗?http://www.haos ...
android手机基站定位 -
u013061116:
连你自己都调试不出来的玩意
Android网络收音机项目 -
xuminliang:
能否给广告滚动条添加事件监听呢,如何添加呢,我试着用一般的给控 ...
Android 广告滚动条实现
最近喜欢听广播,但是搜索了一下,苦于网上没有android的网络收音机项目的例子,于是自己动手实现了Android网络收音机项目。
前言,由于很多网络广播使用的协议是mms,来自微软,但是android并不支持这种流媒体协议,我的解决办法是使用Vitamio插件+Vitamio库的方式解决。这样在安装app本身的apk同时还要安装对应你手机的Vitamio插件,这个插件是老外开发的还免费,支持很多媒体格式,安上一个也挺好的,大概3M多。有一点要注意的是这个插件跟硬件有关,所以...所以如果你可以一个一个的试,看哪个适应你的手机硬件,这个插件有4个版本:
ARMv6: for some low end devices (Market, VOV)
VFP: for some low end devices with VFP support (Market, VOV)
ARMv7: for ARMv7 devices without NEON support, such as Tegra 2 powered devices(Market, VOV)
NEON: for ARMv7 devices with NEON support (Market, VOV)
具体可以上http://vov.io/vitamio/看一下,我的烂手机是VFP这个版本的。
开始前的准备,你最好在上面的官网上下载一份API看看:Vitamio-SDK.7z。SDK里面还有vitamio.jar这个jar文件,里面有流媒体的控制类。OK废话不多说,上代码(导jar包相信大家都了然,这里不作介绍):
AndroidManifest文件
主页面布局文件main未修改,播放页面布局文件如下play_page
第一个activity代码,主要负责检查插件NetRadioDemoActivity
第二个activity,主要负责播放PlayerActivity
OK,完成,猫扑电台悦耳的声音从我的手机里播放出来啦。
运行时 出现错误:java.lang.VerifyError
是哪里错了呢?
恳请楼主回复。非常感谢
运行时 出现错误:java.lang.VerifyError
是哪里错了呢?
恳请楼主回复。非常感谢
运行时 出现错误:java.lang.VerifyError
是哪里错了呢?
恳请楼主回复。非常感谢
在这个网站找一下vitamio,这个是一个开源项目。楼主我真心找不到程序了,好久之前的东东了,爱莫能助呀
这种收信号的都是rom自带的,没有实现必要吧?
也是 ,只是想知道是怎么写出来的 需要JNI 想知道这样的软件一般是怎么开发出来的
这种收信号的都是rom自带的,没有实现必要吧?
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
抱歉,没仔细看你的帖子,貌似这个项目没有提供 arm v5 的插件。
arm v5?可以支持所有arm核心的硬件?包括arm7,9,cotex?我只是做了这么个小例子就没再研究了。
静默安装给用户的体验会更好些,很多人问这个静默安装的问题,网上有一些答案,答案给我的感觉就是,静默安装可能性不大,安全性太差
1. 编译armv5的版本只会使用基本的指令集,应该是可以支持所有arm核心的CPU。
2. SDK没有提供实现静默安装的方法,如果能实现也可能是利用了系统的漏洞。
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
抱歉,没仔细看你的帖子,貌似这个项目没有提供 arm v5 的插件。
arm v5?可以支持所有arm核心的硬件?包括arm7,9,cotex?我只是做了这么个小例子就没再研究了。
静默安装给用户的体验会更好些,很多人问这个静默安装的问题,网上有一些答案,答案给我的感觉就是,静默安装可能性不大,安全性太差
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
抱歉,没仔细看你的帖子,貌似这个项目没有提供 arm v5 的插件。
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
前言,由于很多网络广播使用的协议是mms,来自微软,但是android并不支持这种流媒体协议,我的解决办法是使用Vitamio插件+Vitamio库的方式解决。这样在安装app本身的apk同时还要安装对应你手机的Vitamio插件,这个插件是老外开发的还免费,支持很多媒体格式,安上一个也挺好的,大概3M多。有一点要注意的是这个插件跟硬件有关,所以...所以如果你可以一个一个的试,看哪个适应你的手机硬件,这个插件有4个版本:
ARMv6: for some low end devices (Market, VOV)
VFP: for some low end devices with VFP support (Market, VOV)
ARMv7: for ARMv7 devices without NEON support, such as Tegra 2 powered devices(Market, VOV)
NEON: for ARMv7 devices with NEON support (Market, VOV)
具体可以上http://vov.io/vitamio/看一下,我的烂手机是VFP这个版本的。
开始前的准备,你最好在上面的官网上下载一份API看看:Vitamio-SDK.7z。SDK里面还有vitamio.jar这个jar文件,里面有流媒体的控制类。OK废话不多说,上代码(导jar包相信大家都了然,这里不作介绍):
AndroidManifest文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.netradiodemo" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.Black"> <activity android:name=".NetRadioDemoActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".compnents.PlayerActivity"></activity> </application> </manifest>
主页面布局文件main未修改,播放页面布局文件如下play_page
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/btn_start" android:layout_gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="听猫扑" android:textSize="30sp" android:onClick="doStart" /> <Button android:id="@+id/btn_stop" android:layout_gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="不听猫扑" android:textSize="30sp" android:onClick="doStop" /> </LinearLayout>
第一个activity代码,主要负责检查插件NetRadioDemoActivity
package com.netradiodemo; import io.vov.vitamio.VitamioInstaller; import io.vov.vitamio.VitamioInstaller.VitamioNotCompatibleException; import io.vov.vitamio.VitamioInstaller.VitamioNotFoundException; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout.LayoutParams; import android.widget.TextView; import android.widget.Toast; import com.netradiodemo.compnents.PlayerActivity; public class NetRadioDemoActivity extends Activity { Intent intent ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); intent = new Intent(this, PlayerActivity.class); TextView tvCheck = new TextView(this); tvCheck.setText("使用前请检查是否安装了Vitamio插件:"); this.addContentView(tvCheck, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); Button btnCheck = new Button(this); btnCheck.setText("检查"); btnCheck.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { try { String isInstallerString = VitamioInstaller .checkVitamioInstallation(NetRadioDemoActivity.this);//检查插件是否安装成功,这里是一个费时操作,应该启新线程处理,作为一个demo我就不做了 Log.i("tag",isInstallerString); //插件安装成功后,Log中显示插件名称 if(isInstallerString!=null){ Toast.makeText(NetRadioDemoActivity.this, "已安装正确版本Vitamio!", Toast.LENGTH_LONG).show(); startActivity(intent);//开启收听界面 }else{ Toast.makeText(NetRadioDemoActivity.this, "没有匹配的Vitamio!", Toast.LENGTH_LONG).show(); finish();//没有插件安装失败,则结束程序 } } catch (VitamioNotCompatibleException e) { e.printStackTrace(); } catch (VitamioNotFoundException e) { e.printStackTrace(); } } }); this.addContentView(btnCheck, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); } }
第二个activity,主要负责播放PlayerActivity
package com.netradiodemo.compnents; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.VitamioInstaller.VitamioNotCompatibleException; import io.vov.vitamio.VitamioInstaller.VitamioNotFoundException; import io.vov.vitamio.widget.MediaController; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.LinearLayout.LayoutParams; import com.netradiodemo.R; public class PlayerActivity extends Activity { MediaPlayer mPlayer; @Override protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.play_page); MediaController controller = new MediaController(this);//创建控制对象 this.addContentView(controller, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); String path = "mms://ting.mop.com/mopradio";//猫扑电台地址,这里可以添加自己的喜欢的电台地址,mms协议的 try { mPlayer = new MediaPlayer(this);//播放流媒体的对象 mPlayer.setDataSource(path);//设置流媒体的数据源 mPlayer.prepare(); } catch (VitamioNotCompatibleException e) { e.printStackTrace(); } catch (VitamioNotFoundException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } super.onCreate(savedInstanceState); } public void doStart(View view){ mPlayer.start();//开始播放 } public void doStop(View view){ mPlayer.stop();//停止播放 } }
OK,完成,猫扑电台悦耳的声音从我的手机里播放出来啦。
评论
17 楼
u013061116
2014-07-14
连你自己都调试不出来的玩意
16 楼
Dodeechen1990
2013-05-31
运行时 出现错误:java.lang.VerifyError
是哪里错了呢?
恳请楼主回复。非常感谢
15 楼
Dodeechen1990
2013-05-31
运行时 出现错误:java.lang.VerifyError
是哪里错了呢?
恳请楼主回复。非常感谢
14 楼
Dodeechen1990
2013-05-31
运行时 出现错误:java.lang.VerifyError
是哪里错了呢?
恳请楼主回复。非常感谢
13 楼
malong26
2013-03-22
ciazzp 写道
楼主,可以发一个完整的例子吗,真的找不到里面的包,要报错.
非常非常感谢~~~~~
54fbj@163.com
非常非常感谢~~~~~
54fbj@163.com
在这个网站找一下vitamio,这个是一个开源项目。楼主我真心找不到程序了,好久之前的东东了,爱莫能助呀
12 楼
ciazzp
2013-03-21
楼主,可以发一个完整的例子吗,真的找不到里面的包,要报错.
非常非常感谢~~~~~
54fbj@163.com
非常非常感谢~~~~~
54fbj@163.com
11 楼
ciazzp
2013-03-21
import io.vov.vitamio.widget.MediaController;
这个包在哪下载?
这个包在哪下载?
10 楼
二冲2010
2012-06-29
malong26 写道
二冲2010 写道
不用网络的收音机 如何实现 愿请教
这种收信号的都是rom自带的,没有实现必要吧?
也是 ,只是想知道是怎么写出来的 需要JNI 想知道这样的软件一般是怎么开发出来的
9 楼
apps
2012-06-25
收藏文章很好听
8 楼
malong26
2012-06-25
二冲2010 写道
不用网络的收音机 如何实现 愿请教
这种收信号的都是rom自带的,没有实现必要吧?
7 楼
二冲2010
2012-06-24
不用网络的收音机 如何实现 愿请教
6 楼
shaobin0604
2012-05-07
malong26 写道
shaobin0604 写道
shaobin0604 写道
malong26 写道
shaobin0604 写道
貌似是VPlayer那个团队开发的
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
抱歉,没仔细看你的帖子,貌似这个项目没有提供 arm v5 的插件。
arm v5?可以支持所有arm核心的硬件?包括arm7,9,cotex?我只是做了这么个小例子就没再研究了。
静默安装给用户的体验会更好些,很多人问这个静默安装的问题,网上有一些答案,答案给我的感觉就是,静默安装可能性不大,安全性太差
1. 编译armv5的版本只会使用基本的指令集,应该是可以支持所有arm核心的CPU。
2. SDK没有提供实现静默安装的方法,如果能实现也可能是利用了系统的漏洞。
5 楼
malong26
2012-05-03
shaobin0604 写道
shaobin0604 写道
malong26 写道
shaobin0604 写道
貌似是VPlayer那个团队开发的
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
抱歉,没仔细看你的帖子,貌似这个项目没有提供 arm v5 的插件。
arm v5?可以支持所有arm核心的硬件?包括arm7,9,cotex?我只是做了这么个小例子就没再研究了。
静默安装给用户的体验会更好些,很多人问这个静默安装的问题,网上有一些答案,答案给我的感觉就是,静默安装可能性不大,安全性太差
4 楼
shaobin0604
2012-05-03
shaobin0604 写道
malong26 写道
shaobin0604 写道
貌似是VPlayer那个团队开发的
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
抱歉,没仔细看你的帖子,貌似这个项目没有提供 arm v5 的插件。
3 楼
shaobin0604
2012-05-03
malong26 写道
shaobin0604 写道
貌似是VPlayer那个团队开发的
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1. 没必要集成不同的插件,用 armv5 的就行了。
2. 为什么要静默安装。
2 楼
malong26
2012-04-27
shaobin0604 写道
貌似是VPlayer那个团队开发的
这个倒不知道,但是如果用这个做成一个项目的太麻烦,需要处理两个问题:1,根据不同硬件需要集成不同的插件;2,完成apk的静默安装
1 楼
shaobin0604
2012-04-27
貌似是VPlayer那个团队开发的
发表评论
-
当显示Popupwindow时,音量键无效
2013-07-31 20:16 1576Activity设置了setVolumeControlStre ... -
Service与Activity通信
2013-07-27 09:42 727There are three obvious ways to ... -
SQLite错误总结
2013-07-24 14:58 10791. android.database.sqlite.SQLi ... -
程序退出代码片段
2013-05-03 11:26 1008Intent intent = new Intent(In ... -
使用观察者模式完美实现android程序退出
2013-05-02 15:04 16210android的app程序退出有几种方式:activi ... -
ADT21抢鲜使用
2012-12-07 15:00 2865伴着Android4.2的发布,楼主我也更新到了API17,a ... -
PopupWindow的onScrollChanged系统bug
2012-11-29 09:22 2614最近遇到一个问题,在项目中使用actionbar做标题栏,ac ... -
租吧――我的app发布历程
2012-11-23 10:41 4639从这个项目开始计 ... -
android手机基站定位
2012-10-31 09:47 7407这段时间在做定位功能 ... -
Android Parcel初识
2012-07-13 21:06 1176android中新的对象序列化Parcel,基于IPC协议(进 ... -
Android 广告滚动条实现
2012-07-12 15:21 11731各个商城类客户端都有滚动广告,比如京东,QQ,1号电,当当网等 ... -
使用框架编写Android程序
2012-07-06 09:48 9015AndroidAnnotations这个开源项目为androi ... -
actionbar使用
2012-06-28 20:08 3543ActionBar作为一个优秀的开源控件,被google所看好 ... -
模仿iphone弹出式短信查看
2012-06-18 12:25 1994感觉使用抽屉查看短信麻烦,于是自己写了一个模仿iphone查看 ... -
Android中3种方法实现back键动作
2012-05-24 17:57 24424方法一:重写onBackPressed方法 @Overri ... -
ActivityGroup中使用切换动画
2012-05-23 18:10 4402在stack上面发现的方法,分享给大家,功能是在activit ... -
Android的AsyncTask类中使用自定义handler
2012-05-10 08:53 2667熟知的AsyncTask就是Thread+handler实现, ... -
当rawQuery遇上模糊查询
2012-04-18 18:04 4793遇到一个好玩的事情,使用rawQuery方法模糊查询,代码这样 ... -
viewpager循环拖动
2011-12-31 23:18 13169最近在研究viewpager,准备做循环拖动即A->B- ...
相关推荐
链接mms流媒体协议的播放器,代码源自http://www.eoeandroid.com/forum.php?mod=viewthread&tid=179089&extra=page%3D1&page=1,还需要在手机中安装一个Vitamio插件才能运行,可从360中搜索Vitamio软件安装。
一个有android开发的网络收音机.各位可看看,一个有android开发的网络收音机.各位可看看
android调频收音机源码
小米网络收音机读取编程器固件,修复小米网络收音机不开机问题。
龙卷风网络收音机龙卷风网络收音机龙卷风网络收音机龙卷风网络收音机龙卷风网络收音机龙卷风网络收音机
网络收音机网络收音机网络收音机网络收音机
11KB网络收音机 11KB网络收音机 11KB网络收音机
可用的网络收音机源代码,C#编写,其中各电台地址是写死在程序里的,可以自己改造成可随时修改的。蛮不错。
很实用的网络收音机 收音机,可以下载体验一下哦!
三层网络收音机源码三层网络收音机源码三层网络收音机源码三层网络收音机源码
Android 网络收音机DEMO,类似于 TuneIn Radio, Any Radio, 蜻蜓.fm 详细信息见 http://www.cnblogs.com/shaobin0604/archive/2012/12/02/2798011.html
龙卷风网络收音机龙卷风网络收音机龙卷风网络龙卷风网络收音机收音机
网络收音机 QT 实现 简单的调用Windows mediaplayer 播放mms:/的网络电台 大部分电台都是好用的 都是纯手工找到的一个个试的 希望对大家有用处
android 收音机 FM 驱动 hal层 框架层以及应用层代码 方法一 不需要framework部分 1.fm放到 \hardware\rk2x 2.FmRadio 放到 packages\apps 3.hardware\libhardware\include\hardware\fm.h 放到hardware\libhardware...
0905自制网络收音机1.0,电台可以自己在ini文件里加
可以添加电台或者地址,对三层(BLL、DLL、Model)的使用进行了演示。 没有做前台,后台只做了个大部分功能,数据库操作采用的是DBHelper。 website为网站文件夹,管理地址manage.aspx Sql数据库文件,附加即可 ...
iRadio网络收音机(VB.NET2005)
vc++ 写的一个网络收音机,界面美观,操作方便。。
网络收音机,是用易语言编程语言编写的,超简单.
龙卷风网络收音机7.6版,推荐给大家使用