说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

利用Visual Basic设计多媒体应用程序

HTML文档下载 WORD文档下载 PDF文档下载
利用Visual Basic设计多媒体应用程序
一、前言
  随着多媒体硬件环境和软件环境的不断完善,目前,大部分计算机软件开发中都涉及多
媒体软件技术的应用。
  进行多媒体应用程序设计,从原理上说,可以采用从C++到多媒体专用开发系统(如
TOOLBOOK、AUTHORWARE、DIRECTOR)等多种层次的工具。然而,由于多媒体软件涉及的媒体
复杂多样、开发周期短并且需要多种专业人员参与,因此,为了能进行实用高效的开发,必
须选用简单易用、开发效率高的软件。
  Visual Basic是Microsoft公司开发的Windows编程工具软件。由于它具有先进的设
计思想、快速易掌握的使用方法及控制媒体对象手段灵活多样等特点,受到了多媒体软件开
发人员的关注和青睐,也因此成为多媒体应用程序开发的理想工具。

二、Visual Basic的多媒体控件MCI.OCX

  MCI(媒体控制接口)是Microsoft公司为实现Windows系统下设备无关性而提供的媒
体控制接口标准。用户可以方便地使用MCI控制标准的多媒体设备。

  MCI包含在Windows多媒体扩展的MMSYSTEM模块中,用来协调事件间以及MCI设备驱
动程序间的通讯,提供了与设备无关的接口属性。通常应用程序是通过指定一个MCI设备类
型来区分MCI设备,设备类型指明了当前实际使用设备的物理类型,不同的设备类型使用不
同的控件属性来进行描述(见附表1)。

  从使用的控制方式上来说,MCI设备分为复合和简单两类。一个简单MCI设备并不需要
设备元素。例如,CD音频和音碟机就是在一个已经安装好了的硬盘上工作的,它们不需要
应用程序为其操作的媒体内容提供任何信息。但对于复合的MCI设备,就需要应用程序提供
设备元素,即一个包含全部路径名的源数据文件或目的文件。

  Visual Basic语言的Custom Control(用户控制部件)概念体现了当今软件设计的发
展潮流--面向对象技术,编程者可以在Visual Basic的工具箱(Toolbox)中嵌入各式各样
五花八门的用户控件,每个用户控制部件都有一定的属性和操作方法,编程者通过属性的设
置和方法的控制完成特定的功能。为了方便地控制多媒体,在专业版Visual Basic工具箱
中提供了一个用于多媒体目的的用户控件--MCI.OCX。

  多媒体MCI控件MCI.OCX专用于对多媒体控制接口MCI设备的多媒体数据文件实施记录
和回放,从目的效果上来说,该控件通过一组按钮来发出种种设备控制命令以实现对诸如:
音频面板、MIDI音序器、CD-ROM驱动器、音频CD播放机、录像带播放、录音带录放等设备
的控制。在Visual Basic程序设计时,当在表中加入多媒体MCI控件时(在工具箱内双击
MCI控件),则出现下列按钮群:向前(Prev)、向后(Next)、播放(Play)、暂停(Pause)、
返回(Back)、单步(Step)、停止(Stop)、记录(Record)和出带(Eject)。

  应用程序对MCI的这组按钮操作非常灵活方便,如当我们打开一个MCI设备后,就可以
根据该设备类型的属性随时从控件中选择合适的状态按钮来表示即刻设备的物理状态。所有
MCI控件可以有下列几种方式来编程:⑴控件及其各按钮的可见性和使能性;⑵可变或完全
对控件进行重新定义;⑶在一个窗口表格中可以同时控制多个设备。

三、多媒体控制部件MCI.OCX的调用
  在Visual Basic3.0专业版中,多媒体控件MCI.OCX(在Visual Basic 3.0和4.0中,
多媒体控件的扩展名为.VBX)是作为可选用部件提供的。为了使用它,首先要执行File\Add
File菜单命令,把Windows\system目录下的MCI.OCX加入到工具箱(Toolbox)中,这时
会在工具箱中出现相应的MCI.OCX图标。如果使用的是Visual Basic4.0版(或5.0版),
选择Tools\Custom Controls菜单或直接键入Ctrl+T,即可出现对话框,在Available
Controls列表框中选中Microsoft Multimedia Controls条目旁边的检查框,同样会在工
具箱中出现MCI.OCX图标。
  双击工具箱中的多媒体控件MCI.OCX图标,调用MCI.OCX控件之后,表单FORM中将出
现一排灰色的媒体控制按钮(九个)。

四、Visual Basic多媒体应用程序设计步骤
  多媒体控件MCI.OCX包含有一组高级的与设备无关的控制命令。在使用该多媒体控件
时,首先用OPEN命令打开MCI设备(多媒体设备)并建立一个与之对应的文件,以便来进行
录或放等操作(但是对诸如CDAudio、VCR和录像带不能使用相应文件)。一旦设备打开成功,
就可以向它发出各种操作命令(见附表的按钮命令)来完成指定的工作任务。最后记住,要
用Close命令来关闭设备和数据文件。
  使用MCI.OCX来进行多媒体应用程序开发是很方便的,因为大多数属性都是容易理解
的,其中Command属性尤为重要,它是在运行过程中向多媒体设备发命令。格式为:
  Form.MMcontrol.Command=cmdstring$
  其中,cmdstring$变量是如下可执行命令名:Open、Close、Play、Pause、Stop、Back、
Step、Prev、Next、Seek、Record、Eject、Sound和Save。一旦给其命令设置,它就立刻
执行,所发生的错误存在Error属性中。
  下面以播放DEMO.WAV(波形文件)文件为例,说明Visual Basic多媒体应用程序设计
步骤。
  首先,创建一个包含有多媒体控件(MCI.OCX)的表格(Form),于是屏幕上显示出形状
类似录音机的控制键,不过这时多媒体控制部件是不能马上拿来用的(各键呈灰色),须通
过程序代码来改变键的状态。
  其次,在Form_Load过程中,插入相应程序代码。如下
  Sub Form_Load()
  ‘在发出 OPEN 命令前要设置多媒体设备的属性
  Form1.MMControl1.Notify=False
  Form1.MMControl1.Wait=True
  Form1.MMControl1.Shareable=False
  Form1.MMControl1.DeviceType="WaveAudio"
  Form1.MMControl1.FileName="c:\windowss\
  mmdata\demo.wav"
  Form1.MMControl1.Command="Open"
  End Sub

  最后,运行上述程序,控制键呈黑色,这时就可以使用Play、Record等键操作数据文
件DEMO.WAV了。例如用鼠标点按Play键就能听到.WAV音效(计算机应装有发音设备)。
  通过上面陈述,不难发现,Visual Basic利用多媒体控件MCI.OCX设计多媒体应用程
序很容易掌握。

五、Visual Basic多媒体应用程序设计实例
  1、播放CD音乐
  在很多多媒体软件系统中,都提供了激光唱盘的播放软件,利用多媒体控件MCI.OCX,
我们可以轻松地编制出符合自己使用要求的简易激光唱盘播放机。
  表1给出了简易CD播放器的主要控制部件定义,其后是对应于各个触发事件的源程序
代码。
完整的源程序清单如下:
  'CD播放机实用程序
  '运行程序前请在CD-ROM驱动器中装入一张激光唱碟’“LOAD”按钮触发事件
  Private Sub Command1_Click()
  '装入CD唱片
  On Error GoTo MCI_ERROR
  MMControl1.Command = "Open"
  On Error GoTo 0
  '设置时间格式
  MMControl1.TimeFormat = vbMCIFormatTmsf
  '关闭LOAD按钮,显示图片
  Command1.Enabled = False
  Picture1.Picture = Picture3.Picture
  ' 设置初始轨道数
  Label1.Caption = "1"
  Exit Sub
  MCI_ERROR:
  DisplayErrorMessageBox
  Resume MCI_EXIT
  MCI_EXIT:
  Unload CD
  End Sub

  Private Sub Form_Load()
  MMControl1.Wait = True
  MMControl1.UpdateInterval = 0
  ' 设置设备类型
  MMControl1.DeviceType = "CDAudio"
  '设置缺省轨道数为0
  Label1.Caption = "0"
  End Sub

  Private Sub Form_Unload(Cancel As Integer)
  MCITest.Show
  End Sub

  ’“出带”按钮触发事件
  Private Sub MMControl1_EjectClick(Cancel As Integer)
  Command1.Enabled = True
  Picture1.Picture = Picture2.Picture
  MMControl1.UpdateInterval = 0
  On Error GoTo MCI_ERROR2
  MMControl1.Command = "Eject"
  MMControl1.Command = "Close"
  On Error GoTo 0
  Label1.Caption = "0"
  Label3.BackColor = &H404040
  Exit Sub
  MCI_ERROR2:
  DisplayErrorMessageBox
  Resume Next
  End Sub

  ’“向前”按钮触发事件
  Private Sub MMControl1_NextCompleted(ErrorCode As Long)
  Label1.Caption = Str$(MMControl1.Track)
  End Sub

  ’“暂停”按钮触发事件
  Private Sub MMControl1_PauseClick(Cancel As Integer)
  MMControl1.UpdateInterval = 0
  Label3.BackColor = &H404040
  End Sub

  ’“播放”按钮触发事件
  Private Sub MMControl1_PlayClick(Cancel As Integer)
  MMControl1.UpdateInterval = 1000
  Label1.Caption = Str$(MMControl1.Track)
  End Sub

  ’“向后”按钮触发事件
  Private Sub MMControl1_PrevCompleted(ErrorCode As Long)
  Label1.Caption = Str$(MMControl1.Track)
  End Sub
  
  Private Sub MMControl1_StatusUpdate()
  Label1.Caption = Str$(MMControl1.Position And &HFF)
  If MMControl1.Mode = vbMCIModePlay Then
  Label3.BackColor = &H80FF&
  Else
  Label3.BackColor = &H404040
  End If
  End Sub
 
  ’“停止”按钮触发事件
  Private Sub MMControl1_StopClick(Cancel As Integer)
  MMControl1.UpdateInterval = 0
  Label3.BackColor = &H404040
  MMControl1.To = MMControl1.Start
  MMControl1.Command = "Seek"
  MMControl1.Track = 1
  Label1.Caption = "1"
  End Sub

  2、播放AVI(音频视频接口)文件
  电影(包括声音和图像)是广大计算机工作者最为关心的媒体信息之一,电影处理技术
也是多媒体关键技术之一。而在多媒体系统中,AVI(Audio Video Interface,音频视频接
口)文件是存储电影(包括声音和图像)的标准格式,这些AVI文件一般是通过捕获实时视
频信号得来的,也可以通过扫描仪获取图像或者使用动画制作软件得到。于是,屏幕窗口上
的音频视频操作,就变成了对AVI文件(文件后缀为AVI)的处理。
在实际工作中,播放AVI文件(即影片)的方法有许多种,而其中以利用Visual Basic的
多媒体控件方法最为简单、方便。下面以一个具体实例来说明如何播放AVI文件:假设用户
当前目录下有名字为DEMO.AVI的视频音频文件,则利用Visul Basic播放该影片需要经过
如下步骤:
  (1)在Visual Basic的窗体中加入一个MMControl多媒体控件、一个PictureBox图
片框控件和两个ComandButton命令按钮部件;
  (2)设置各个控件的属性,其中窗体命名为Form1,MMControl多媒体控件命名为
MMControl1、PictureBox图片框控件命名为Picture1、两个ComandButton命令按钮控件分
别命名为Play和Close;
  (3)编写各触发事件源程序代码并且运行。源程序代码为:
  Private Sub Play_Click()
  MMControl1.Filename = "DEMO.AVI"
  MMControl1.DeviceType= = "AVIVIDEO"
  MMControl1.hWndDisplay = Picture1.hWnd
  MMControl1.Command = "OPEN"
  MMControl1.To = 1
  MMControl1.Command = "SEEK"
  MMControl1.Command = "PLAY"
  End Sub
  Private Sub Close_Click()
  MMControl1.Command = "STOP"
  MMControl1.Command = "CLOSE"
  End Sub
  值得注意的是:在播放AVI文件之前,首先应该把AVI(音频视频)驱动程序安装在Windows
下。AVI的驱动程序名为MCIAVI.DRV,必须将它拷贝到\WINDOWS\SYSTEM目录下,同时在
SYSTEM.INI文件的[MCI]部分加上:
  AVIVIDEO=MCIAVI.DRV
  这样,运行Windows时,Windows会自动地将AVI的驱动程序安装好。
  以上仅描述了利用多媒体控制部件播放音频文件(.WAV)、CD唱片和音频视频文件
(.AVI)的操作过程。实际上利用多媒体控制部件同样可以播放动画文件(.FLI、.FLC)、MIDI
文件等其他媒体信息。

六、结束语
  通过前面论述,不难看出:利用Visual Basic提供的多媒体控制部件MCI.OCX,广大
计算机用户可以方便、快捷、高效率地开发出各种多媒体应用程序。但需要强调的是:开发
设计Visual Basic多媒体应用程序,除了可以利用多媒体控制部件以外,还可以采用其他
手段,例如通过调用API函数等等(鉴于篇幅,这里未做讨论)。可见, Visual Basic确
实是专业与非专业多媒体软件开发人员共同拥有的理想开发工具。



附表1 MCI设备类型定义
设备类型   设备描述
CDAudio    激光唱盘播放设备
DAT      数字化磁带音频播放机
DigitalVideo 动态数字视频图像设备
Animation  动画播放设备
Other    未给出标准定义的MCI设备
Overlay    模拟视频图像叠加设备
Sequence    MIDI音序发生器
VCR     可以使用程序控制的磁盘录像机
VideoDisc   可以使用程序控制的激光视盘机
WaveAudio  播放数字化波形音频的设备

附表2 多媒体控制部件特有事件列表
事件       说明
Done        完成MCI命令动作(Notify为真)
ButtonClick    单击按钮
ButtonCompleted 按钮执行命令完成
ButtonGetFocus  按钮获得输入焦点
ButtonLostFocus 按钮失去输入焦点
StatusUpdate   更新媒体控制对象的状态信息
EasyHadoop技术沙龙在北京、广州两地齐发 CloudStack技术沙龙:committer李学辉及中航信分享 思科为什么愿意花12亿美元收购云计算网络初创公司Meraki? 谷歌有麻烦了!联邦贸易委员会正调查其搜索业务 当数据中心遭遇污水 微软新能源数据中心的诞生 2012vForum:更加注重开发者 腾讯赵伟:Hive在腾讯分布式数据仓库的实践 Apple将在2013年启动香港数据中心的建设 顶级域名扩张受阻:ICANN透露部分域名存争议 硅谷创业教父Paul Graham:如何获得创业好点子? GDC2012特别报道:中西方游戏开发思想在这里融合 应用示例和对象是编程的未来吗? 为什么2012年HTML5发展远未达预期 当程序不再工作时,程序员说 独立游戏开发者易犯的9大致命错误 “Do Not Track”的前世今生 《Warcraft是怎样炼成的(三)》:从Demo到游戏 无限强大的超级马里奥AI 以Google第二代数据库产品MegaStore为理论模式 探索HBase系统 传Google明年推Chrome OS触摸屏上网本 下载自己过去的Tweets?用户准备好了吗? 微软任命研究部门新副总裁 负责北京等实验室 欧朋首席标准官:HTML5将在2014年成熟 开发利器:对游戏开发者最具价值的5类iOS应用 专访前IE浏览器内核研发工程师,带你深入了解IE10 Windows 8市场接纳速度慢于Windows 7 别只看下载量!“用户留存率”才是关键! 预计2020年出现百亿亿次级超级计算机 Google数据中心PUE的秘密 一个传奇:有个人不断赢得世界算法冠军 音乐能力开放平台合作探索之旅 directx屏幕捕获,为什么我的这段代码不行 小问题,大侠帮忙,小弟不胜感激!!!!! 我想使用一个字段来存储2万字左右的文章应该用什么类型(text不够用的)? 向非窗口类的对象发送消息呢? 如何重新检索 救急:Win me开始菜单及Taskbar的小图标都变花了,如何解决?up有分 ############狂送分,附带一个小问题########### 在bc中怎样创建资源文件?? 请高手进入,急!在线等待 生活有你 更新后台數據,用試圖就可以,用代碼就不行? ★★★CFormView的大小,高手没必要进,低手就可以解决了! 不超过十行,但.....(C) 打到雍亲王 "准女朋友的胸太平了,我该如何取舍? " 准备结贴了,要顶的赶快顶呀,去晚了就没机会了 为什么我从数据采集仪采集到的数据是乱码? 请教:动态的下拉菜单怎样做?在线等待,答对就给分! 有谁知道用vb如何把bmp的文件转换为jpg格式?? sql server2000是不是不能在winxp 专业版下安装?? 请问大家 wait函数的使用问题(给100) 关于wait函数的使用问题(给100) 如何在xp下能够删除带子目录的文件夹? [求助]关于考试座位号随机分配问题! 无奈的我等你的帮助! 在delphi中如何建立一个doc文件? 有谁可以帮帮忙(在线等待) 请问大家如何防止DEDE的,我发现许多软件没有进行压缩也无法进行DEDE反编译,通常只能进行到一半 现代制造业企业管理系统的开发 (C++ builder) 线程设计,帮帮忙!!! 关于flash中的actionscript 如何做自动评分的考试系统?给点建议或意见! 告急!!!主从表的问题,怎样修改从表时,让主表的数据跟着变化? 刚刚在新闻组看到的东西, 让大家乐乐(转贴) 关于ASP.NET的讨论,欢迎大家指正. 再发:请教在Rave 报表中如何在每一页上都显示打印表头 关于视图的问题!!!很急,各位大哥帮帮忙!! CrystalReports(水晶报表)的版权问题 请看此贴!帮忙阿! 菜鸟问题,请问怎么让 点主from上的一个按钮就弹出另一个编好的窗体 请问能不能将网页页面内容保存为word文档输出?? 碰上大麻烦了,哥们们救救我吧!~ 请看此帖,帮忙啊! 中文打包问题 谁可以给我一个java的例子读excel的*.cvs文件,thanks 请看此帖,帮忙啊! 想请叫一个关于网站视频的问题 关于jre的2个问题 oracle错误 Memo字段(Access)的字符串搜索问题? 在线等待啊,高分!!对选题的判分。 双子座流星雨在山东青岛能看到我,我说的是肉眼 搜狗拼音输入法收的词汇有多少?比《现代汉语词典》多多少? 品牌权益(brand equity)和品牌价值(brand value)有什麽不衕?有什麼不同点? 将要到来的双子座流星雨用肉眼能看到吗? 现代汉语词典中某些词条中有不止一种的解释,这个排序是不是有什么意义?比如说在“自由”中,有三条解释:①在法律规定的范围内,随自己意志活动的权利;②哲学上把人认识了事物发展的 国庆阅兵观后感的题目60周年的,别太俗了,像《 》有感;国庆 有感……之类的.30分钟内回答!60周年的,别太俗了,像《 》有感;国庆 有感……之类的不要。30分钟内回答! 双子座流星雨在厦门同安用肉眼可以看到吗 关于第六版现代汉语词典 有些词条旁边会有一个小括号(十万火急!)关于第六版现代汉语词典 有些词条旁边会有一个小括号 例如:【标志】(标识)biāo zhì,那么括号里的那个算异体字整理的吗 成长在现代汉语大辞典中的含义 请问今天的双子座流星雨在芜湖用肉眼能看到吗 答案写的太烂看不懂 方言与现代汉语的意义相比较,有什么不同 帮忙找一下以下特殊符号 内陆地区新疆 降雪多怎么可能 呢 降雨和降雪一样的形成原理 那么处于内陆的新疆为什么 连年暴雪呢 赋课金翻译成国语白话是什么意思? 根据提示写出含有手的成语形容凶狠 形容顺利 形容高明 形容冷漠 形容专横 就是最后一个符号 紧急 紧急 Plant Physiology 是不是SCI 我在北京周边,今天晚上可以肉眼看到双子座流星雨吗? 最后的符号怎么打 Plant Diseases and Pests是什么级别的杂志 如何提高写作能力和语文水平? 哥廷根的介绍.3Q. 但愿人长久千里共婵娟,其中婵娟指的是什么? 语数英物.江苏人民出版社出版. 有人知道个符号怎么打吗就是 名字前面那个 英语翻译一个字,词语,短语翻译就好,能整段整段翻译自然最佳 请语文好的进来下吧 ,我理解能力太差“不知道是人先不对劲才变成这样,还是因为变成这样人才不对劲”这句话是什么意思啊?你们在说什么、。 .有人知道这个符号怎么打吗 第五题,下面那题不用做,求解答第五题, 生仔多的动物是什么生肖 if you plant in soil,they growif you plant in soil,they grow为什么不是will grow? “但愿人长久,千里共婵娟”中的“婵娟”指的是什么? 什么动物生仔 不需要交配 |这个符号怎么打,有人知道吗? 告诉下!谢谢! 但愿人长久,千里共婵娟中“婵娟”指什么 穿山甲动物生蛋还是生仔的 选择合适的单词填空 do should grow plant soil A:what are you going to( )this sunday?B:l'm going to ( )a tree.A:How do you do that?B:lt's easy.First,dig the( ).put the tree in the soil.A:what( )you do then?B:water it.wait for it to( ) 帮我看看这改错题 One afternoon a girl set out in the coast in a small boat and was caught in a storm.答案说把in改成from,可这句话有另个in ,应该是该哪个呢? 我在读初三,现在做物理数学大题的时候感觉会做,但是写过程就会写得很乱,甚至会因此而做错,为什么?我在读初三,现在做物理数学大题的时候感觉会做,但是写过程就会写得很乱,甚至会因此 第四题写的对吗?还有第五题怎么写? 求一个点符号! 不是·不是丶不是• QAQ就是这个3右下角的点>>>⒊ 求啊求! 小红把一个线绳对折一次从中间剪开就成了3条线绳,如果把这根线绳对折三次再从中间剪开就成了( )A 5条B 9条C 17条D 33条 这个C语言程序题的答案就是红笔所写,为什么X是2? sprout plant soil seed 哪个是与众不同的单词? 为什么端午节要带五线绳?,五线绳的来历是什么? 第三题就是红笔的那道题 求解答 什么牌子的微晶石好?超晶石和微晶石有什么区别? 线绳能导电吗 就是红笔写答案“10”的那道题 心驰神往 有一首英文歌曲,节奏很像凤凰传奇这首 心驰神往 叫什么名字 包身工一课中"让她扎一两根油线绳吧!"中的"油线绳"是什么意思? 答案是设用电器电阻为R,然后就是红笔写的步骤,再接下去的步骤就是两条输电线的总电阻是R/2,为什么啊?这个R为什么和前面用电器的R一样啊?然后它答案里就得出P=((U1/3)∧2)/(R/2)=2 找一个符号【黑色的爱心】♥这个怎么打? 大戟科植物特征 脑筋急转弯大全及答案水的化学方程式怎么写 什么是Core_value_of_brand? 五加科植物中常用作垂直绿化的有哪些 泉州考题 仿照《现代汉语词典》词语注释的体例,编写两个常用的方言词条 2009国庆阅兵观后感 取题目2009国庆阅兵的观后感~ 帮忙取个题目` 各位大哥大姐帮帮忙~ 急啊!10月9日要交啦、、谢 日本导弹部队将现身宫古岛 拟搞大规模英国一新郎忘预约教堂 为遮丑谎称有炸外媒称叙政府将在24小时之内提交销毁澳洲国防部被指是林火“罪魁” 灾区官新加坡学者:“中国梦”与“东盟梦”兼中方贷款建设的科伦坡国际机场高速公路中国—东盟自贸区升级:服务业开放将成【热点观察】中国东南亚外交亟须战略自首届“亚洲美食节”在京举办 16国异德国称默克尔手机可能遭美国监听中国经济合作新路径:重建“海上丝绸之中国东南亚外交新局:学习他国经验 寻美巴领导人会晤重在“释暖”消息称韩已确定F-35A为下一代战机挪威销毁叙化武受美国热捧 坦言国内压日本6名女性涉嫌在网络上上传猥亵视频白宫助理在社交网站上匿名批评奥巴马被悉尼科技大学危险化学物泄露 5000印尼日惹苏丹嫁女办3天豪华婚礼邀总统挪威销毁叙化武受美国热捧 坦言国内压日本进入胖女时代 专家称或因对瘦人审11年后 阿森纳再夺半程冠军窗台低了一厘米出事房东要担责为保工作 女清洁工年半学会讲英语多待一年多小敏终于出院了搞活禅城旧区也要保留历史人防办原主任受贿261万元破获特大毒品案收缴K粉21公斤普京要求俄反恐部门强化措施确保各地安广东省副省长林少春:逐渐推进禽类集中市少年宫1月9日发布预报名抽签结果“修好后海珠区相当于一个大公园”水运中转码头不得再扔余泥岁末年初鹤洞大桥又要修了明年城中村将推广村巴服务新广图多付工程款600万元 3亿北部住宅楼将严禁设户外广告 商圈建筑可以广州中小学寒假一律不得开辅导班关爱失独母亲提供免费服务今晚去倒数迎新 可要记得穿多点广东最美古村落 塱头村举办迎新年万人元旦去白云山看神秘夜明珠
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘