zoukankan      html  css  js  c++  java
  • 【手机变身无线音箱WIFI流媒体传输】音乐在PC和手机间双向播放详解Android DLNA使用使用DLNA实现不同设备间媒体共享

    一、前言

    事情的的缘由是这样的:

    我家的音箱是固定的,移动不便,而我家台式机的音频是通过音频线输出到音箱上的,所以我想,如果台式PC做接收端,手机端播放音乐,并将音频信号通过WIFI传输到台式PC端,台式PC便可将接受到的音频播放到音箱上,实现无线音箱的功能 。^_^

    由此便展开了一系列折腾和探索的过程.......

    本教程介绍的软件理论上主要实现以下功能:

    1. 抛开电线,音频无线双向播放。

    即:将手机上的音频通过wifi传输到PC端播放,同时PC端可以进行暂停,上/下一曲,音量控制。同时,也可以将PC音频推送到手机端,配合手机普通音箱瞬间变为无线音箱。

    2.拍了照片和视频,想和家人一同共享观看,在手机上看吗?NO!手机视频音乐图片直接在电视或电脑上观看。

    即:将手机的的音频流通过WIFI传输到PC上播放,同时PC端可以进行暂停,上/下一曲,音量控制。

    3.家庭办公室电脑之间共享媒体资源

    即:PC与PC之间互相传输音频流

    4.照片或音乐瞬间与好友共享,共享乐趣。

    即:手机与手机间互相传输音频流

    你一定听说过DLNA吧,其实上述功能的实现便主要依赖于DLNA和UPnP协议。

    简单介绍下DLNA:

    现在好多手机,笔记本,智能电视,包括Xbox360等游戏机,Apple的ariplay,都在宣传有DLNA功能。其实DLNA是依靠软件实现的功能,不依赖于硬件,所以,任何一部Android手机或装有Window7/8的PC,都可以通过相应的配置或安装相应的软件实现DLNA功能。

    所以基于DLNA这个协议,我们只要在Android手机上安装相应的DLNA的服务端和客户端软件,就可以轻松实现流媒体包括视频,音频,图片的共享和播放了。

    对于PC端,,Windows7内置的Windows Media Player12就已经对DLNA支持得非常完善了。

    再说明一下,DLNA功能的实现必须是家庭中所有设备连入同一个局域网,家庭中必须有无线路由器组成家庭局域网。

    二、Android端软件

    其实Android系统内部已经提供了DLNA协议的支持,Android平台上的DLNA相关的软件很多,大部分是DLNA客户端软件,一般只能浏览PC端共享的媒体,而不能共享手机中的媒体。我找到了几款同时具有客户端和服务端功能的软件。

    软件名

    版本

    功能

    GooglePlay地址

    百度网盘

    2player

    1.0

    实现将手机音频流推送到其他UPnP设备(这里是PC上的WMP) 播放

    http://t.cn/zYN0Id2

     

    http://126.am/iI7yd4

     

    BubbleUPnP

    ---

    可以搜索到其他UPnP设备(这里是PC端WMP) 中共享的音乐,视频,图片,同时也具有与2Player类似的将手机音频流推送到其他设备播放的功能

    http://t.cn/zYN0v6U

     

    http://126.am/ZLxed2

     

    MediaServer

    5.3

    在Android手机端搭建UPnP服务器,共享手机媒体在PC、电视上播放

    http://t.cn/zYN0bGs

     

    http://126.am/Mc4zI2

     

    三、PC端Windows及WMP12设置

    1. 首先按Win+r,打开“运行”对话框,输入services.msc,查看相关服务状态

    PC端必须保证以下服务是开启的(这些服务很可能被360等禁用了)

    SSDP Discovery

    UPnP Device Host

    Windows Media Center Receiver Service

    Windows Media Player Network Sharing Service

    最好将WindowsMediaPlayer相关服务都打开,如果不能发现手机上的UPnP设备或者手机上不能看到PC上的共享媒体,多半是因为相关服务没有打开,启动方式设置为自动,确保服务已启动。

    2.在Windows资源管理器“库”中添加需要共享的音乐,视频,图片。

    以音乐库为例,具体方式如下:

    打开音乐库,如没有包括文件夹,右侧会显示“音乐库为空”,这时添加一个文件夹即可。若已经包含文件夹,右侧会显示类似XX个位置,这时点击XX个位置即可添加其他文件夹。

    3.在控制面板中打开“网络和共享中心”,确保当前局域网设置为“家庭网络”

    在左侧打开“更改高级共享设置”,在家庭或工作中,依次点击点击“启用网络发现”、“启用文件和打印共享”,在“选择媒体流选项”中

    点击“启用媒体流”

    主要的设置便是要启用媒体流。

    4.在“媒体流选项”中,点击“选择默认设置”

     

    选择“本地网络”,“已允许”

    选择默认设置中设置如下,即可共享Windows库中的媒体

    5.

    然后在开始菜单中打开Windows Media Player,设置如下

    “允许控制我的播放器”意思是:手机等其他DLNA设备可以将自己的音频流推送到PC端WMP播放。

    “自动允许设备播放我的媒体”意思是:出于同一局域网的手机等其他DLNA设备端可以自由访问PC端共享的媒体内容。

    下文会有更进一步解释。

     

    这时在资源管理器中,点击“网络”,出现如下两个图标,证明PC端的设置就成功了。

    解释一下这两个图标:

    是PC端的DLNA服务器,手机等其他设备可以通过PC端的这个服务访问PC共享的媒体。

    PC端在打开WMP后,图标就会出现,表示其他DLNA设备可以将媒体流推送到PC端的WMP播放并可在手机等其他设备端进行曲目播放,暂停,音量控制等操作。即实现了音频流的无线传输,这就是开头所说的“无线音箱”的功能啦 ^_^

    四、Android端操作

    这里详细介绍下Bubble UPnP和Media Server这两个软件的使用。

    1.打开Bubble UPnP,

    Bubble UPnP是一个集成了播放器,DLNA服务端,DLNA客户端的全功能DLNA软件。可以在Android系统上实现DLNA的功能。

    下面就详细介绍如何实现本文开头所说的功能

    (1)将手机上的音频流推送到PC上WMP播放

    打开Bubble UPnP,主界面如下,点击“设备”,会显示出当前局域网内的所有DLNA设备,(包括客户端和服务器)。

      

    注:需要在PC端打开WMP才能看到。

    渲染器的意思就是,手机本地的音乐可以用PC端的WMP渲染播放,也可以在手机本地播放。

    的意思就是,音乐资源的来源是手机内置的音乐,还是来自PC端共享的音乐。

    所以,若要实现手机手机上的音乐推送到电脑上播放,那么库应该选择本地媒体服务器,渲染器应该选择PC上的WMP,如上图。

    点击软件下方的“库”,就可以浏览手机本地的歌曲,点击后,你会发现音频神奇地在PC上的WMP开始播放。

    更为神奇的是,在手机上点“下一曲”,PC端的WMP上便切换到了下一曲。PC端按音量按钮,调节的是PC上WMP的音量,实现了音乐的远程播放控制。

      

    (2)浏览PC端共享的媒体并在手机端播放。

    既然要浏览PC上的媒体,那么就应该为渲染器就应该为本地渲染器。点击软件下方的“库”,就会出现在PC共享的音乐等媒体,

      找到你想播放的媒体,就可以播放啦~~~

    2.Meida Server 的使用:实现共享手机媒体,在电视,PC上播放。

    打开Media Server后,会自动开启DLNA服务,“档”选项卡可以选择本机那些文件需要共享。

     

    然后在PC上打开WMP,就可以看到手机共享的内容啦

    就介绍到这里吧,抛砖引玉,对于文章开头提到DLNA的第三个和第四个应用,大家可以自己探索。嘻嘻,其实都是一样的道理。

    五、结语

    家庭娱乐设备的数字化,多样化使得在不同数字终端中的媒体文件共享变得繁琐,DLNA的出现使得数字媒体的共享变得方便、快捷,使用DLAN技术,媒体可在支持DLNA的设备间方便共享。

    我本人就是一个对数码设备与各种技术和新奇软件着迷的GEEK,平常最大的乐趣就是折腾各种新奇的数码产品,软件。对Windows和Android以中软件的应用了解一些。目前专注于Linux下编程及系统管理。

    写这篇教程花了差不多整整一个下午的时间(不容易哦),算是抛砖引玉,做了一个DLNA技术应用的普及吧。

    技术改变生活,技术有了,但更重要的是技术的普及,每个人才能从技术中受益。希望大家善用技术,使生活更美好。

    转载请注明出处http://www.cnblogs.com/feifei435/archive/2013/02/23/2923727.html及作者。

     

    by  童小飞

    fei435#qq.com

    2013.02.23

  • 相关阅读:
    EF里如何定制实体的验证规则和实现IObjectWithState接口进行验证以及多个实体的同时验证
    EF里查看/修改实体的当前值、原始值和数据库值以及重写SaveChanges方法记录实体状态
    使用EF自带的EntityState枚举和自定义枚举实现单个和多个实体的增删改查
    EF里单个实体的增查改删以及主从表关联数据的各种增删改查
    EF和MVC系列文章导航:EF Code First、DbContext、MVC
    EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载
    EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子
    Git敏捷开发--rebase命令
    浏览器远程编写python代码--jupyter web server
    C++学习--编译优化
  • 原文地址:https://www.cnblogs.com/feifei435/p/2923727.html
Copyright © 2011-2022 走看看