- 浏览: 168686 次
- 性别:
- 来自: 北京
最新评论
-
温婉柳叶眉:
可以的,测试了。
使用观察者模式完美实现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 1618Activity设置了setVolumeControlStre ... -
Service与Activity通信
2013-07-27 09:42 776There are three obvious ways to ... -
SQLite错误总结
2013-07-24 14:58 11641. android.database.sqlite.SQLi ... -
程序退出代码片段
2013-05-03 11:26 1103Intent intent = new Intent(In ... -
使用观察者模式完美实现android程序退出
2013-05-02 15:04 16260android的app程序退出有几种方式:activi ... -
ADT21抢鲜使用
2012-12-07 15:00 2940伴着Android4.2的发布,楼主我也更新到了API17,a ... -
PopupWindow的onScrollChanged系统bug
2012-11-29 09:22 2700最近遇到一个问题,在项目中使用actionbar做标题栏,ac ... -
租吧――我的app发布历程
2012-11-23 10:41 4714从这个项目开始计 ... -
android手机基站定位
2012-10-31 09:47 7456这段时间在做定位功能 ... -
Android Parcel初识
2012-07-13 21:06 1227android中新的对象序列化Parcel,基于IPC协议(进 ... -
Android 广告滚动条实现
2012-07-12 15:21 11836各个商城类客户端都有滚动广告,比如京东,QQ,1号电,当当网等 ... -
使用框架编写Android程序
2012-07-06 09:48 9114AndroidAnnotations这个开源项目为androi ... -
actionbar使用
2012-06-28 20:08 3599ActionBar作为一个优秀的开源控件,被google所看好 ... -
模仿iphone弹出式短信查看
2012-06-18 12:25 2070感觉使用抽屉查看短信麻烦,于是自己写了一个模仿iphone查看 ... -
Android中3种方法实现back键动作
2012-05-24 17:57 24480方法一:重写onBackPressed方法 @Overri ... -
ActivityGroup中使用切换动画
2012-05-23 18:10 4463在stack上面发现的方法,分享给大家,功能是在activit ... -
Android的AsyncTask类中使用自定义handler
2012-05-10 08:53 2723熟知的AsyncTask就是Thread+handler实现, ... -
当rawQuery遇上模糊查询
2012-04-18 18:04 4826遇到一个好玩的事情,使用rawQuery方法模糊查询,代码这样 ... -
viewpager循环拖动
2011-12-31 23:18 13232最近在研究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开发能力。
【网络收音机】 网络收音机是一种利用互联网技术接收并播放广播电台的设备或应用程序。与传统的无线电相比,网络收音机不受...通过不断迭代和优化,可以将这个初期项目扩展为功能完备、用户体验优秀的网络收音机应用。
【NetRadioDemo网络收音机demo 代码】是一款用于演示如何实现网络收音机功能的应用程序源码。这个项目可能是用编程语言如Java、C#或Python等编写的,适用于移动设备(如Android或iOS)或者桌面平台。通过分析这个...
【标题】"收音机源码"所涉及的知识点主要集中在软件开发,特别是移动设备上的应用开发,这里主要指的是Android平台。源码是程序的原始代码,是开发者编写的应用程序的详细指令,允许用户深入理解软件的工作原理并...
5. **网络广播**:现代收音机应用还可能包含流媒体功能,允许用户收听在线广播。这需要HTTP或HTTPS协议的支持,以及适应不同音频流格式(如MP3、AAC等)的处理。 6. **用户界面设计**:提供良好的用户体验是关键,...
3. **Android网络收音机项目**:可能包含有关网络媒体播放的示例和教程。 在后续的章节中,我们将详细介绍如何集成Vitamio到Android项目中,配置和使用它的API,以及如何实现上述功能目标。通过Vitamio,开发者可以...
总的来说,"美观的FM收音机界面"项目展示了如何利用Android的布局管理系统和自适应设计原则,创建出一个既美观又能在不同设备上良好运行的用户界面。通过深入理解并实践这些知识点,开发者可以构建出高质量的移动...
高清录音机收音机 支持mp3,m3u,m3u8,pls流 支持mp3和aac类型流 自动停止收音机功能自动停止流媒体 播放/播放/停止/下一个/上一个在线广播流 清除缓存选项用于清除缓存 使用电子邮件/Google登录 支持Dark Mode 3...
该项目名为“udoo-radio”,旨在将UDOO(一种基于ARM架构的微型电脑)嵌入到一台经典的Tandberg收音机中,以实现对其的现代化改造和远程操控功能。UDOO是一款强大的开发板,适合DIY爱好者和专业人士用于各种创新项目...
概念 广播接收器:就像收音机,需要经过调频接收某个频道信息一样,Android需要接收器来获取广播信息,而接收器的过滤就相当于“调频”。 概念 广播分标准广播和有序广播两种形式。 概念 标准广播源 接收器A 接收器...
总结来说,NetThrottle是一个使用Kotlin语言开发的Android应用,它提供了一种无需root权限的方式来管理和限制设备上的网络使用,特别是针对特定的收音机(可能是指网络连接模块)和传感器。其背后的技术可能包括...
总之,标题和内容所提供的信息指出了这款双频模块的多个重要方面,包括其对Android开发者的适用性、WiFi和蓝牙技术的集成、FM收音机功能以及模块的技术规范和性能指标。这些信息为Android设备的无线通信开发提供了...
安装的模块:音频-PT2314 i2c放大器混音器收音机-si4703 FM调谐器,通过i2c MP3控制-本地6600连接到mpd守护程序Lirc-用于IR远程控制的lirc守护程序通过HTTP的html / HTML / CSS / Javascript前端控制器。...
AlarmPadRadioExtension 是一款专为AlarmPad安卓应用程序设计的无线电扩展模块,旨在为用户提供一种全新的唤醒体验——通过甜美的收音机声音开始新的一天。这款扩展是AlarmPad应用功能的补充,通过集成广播接收器...
1. **信号捕获**:这部分负责从硬件设备(如FM收音机模块或内置调谐器)接收射频信号,并将其转化为数字信号。 2. **解调**:解调器将接收到的调频信号还原为音频信号,这通常涉及到傅里叶变换和其他数字信号处理...
- **个人项目**:被用于创建各种创新项目,比如便携式电脑、网络存储设备(NAS)、游戏主机、网络收音机、安全监控系统等。 - **物联网应用**:可以作为物联网项目的中心控制单元,实现家居自动化等功能。 #### 四...