那天,我到网上发现一个VB编写的利用机箱里的蜂鸣器来发声的,
我现在想利用其播放一段音乐,该如何做呢?

解决方案 »

  1.   

    用VB自带的那个BEEP是不行的.
    不像C里面那个sound,可以指定频率.
    很久前见过一个控件还是DLL可以在VB里面这么用,忘记名字了.
      

  2.   

        Dim X(24) As Integer, I As Integer, J As Integer
        X(1) = 784: X(2) = 659: X(3) = 523: X(4) = 784
        X(5) = 659: X(6) = 523: X(7) = 880: X(8) = 698
        X(9) = 587: X(10) = 880: X(11) = 698: X(12) = 587
        X(13) = 1568: X(14) = 1318: X(15) = 1046
        X(16) = 1568: X(17) = 1318: X(18) = 1046
        X(19) = 1760: X(20) = 1396: X(21) = 1174
        X(22) = 1760: X(23) = 1396: X(24) = 1174
        For I = 1 To 2
            For J = 1 To 24
                Beep X(J), 200
            Next J
        Next I
        MsgBox "演奏结束!"
    上次有人求助时贴的好像
      

  3.   

    2楼的需要这个的声明:Private Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
      

  4.   

    alifriend 和 Tiger_Zhao 正解
      

  5.   

    这位兄弟想象力真不一般,小生不胜敬佩。Mark一下共同学习。呵呵。
      

  6.   

    可以参考一下MIDI文件格式,自己定义一种文件格式。
    通常是两个数值为一组,一个定义频率一个定义时间长度;你只要遍历整个文件,每次读两个数值作为Beep函数的两个参数。
      

  7.   

    我是这样想的,如何才能把一段音乐简谱,转换为beep的发生频率呢?
      

  8.   

    ' 音调频率(HZ) = (15625 * (2 ^ 音阶数)) / (511 - 音调值)
    '
    ' 音符 音调值
    '  A        3
    '  A#      31
    '  B       58
    '  C       83
    '  C#     107
    '  D      130
    '  D#     151
    '  E      172
    '  F      191
    '  F#     209
    '  G      226
    '  G#     242
    '
    ' 音阶 范围(HZ)
    '  0   31-61
    '  1   61-122
    '  2   122-244
    '  3   244-488
    '  4   489-977
    '  5   978-1.95k
    '  6   1.96-3.91k
    '  7   3.910-7.81k
    '
    '比如简谱的1音符C,在第2音阶的频率为 
    Round((15625 * (2 ^ 2)) / (511 - 83)) = 146
      

  9.   

    再问个问题,就是,如果我有个MP3音乐文件,我想把他做成是Beep的发生频率,
    该如何做?
      

  10.   

    Mp3文件格式好像是波形纪录,无法用简单的Beep实现。
      

  11.   

    这个问题我曾经也想过,机箱里面闲置的喇叭,除了报警似乎没有别的其他功能
    有的人用这个做过超声波驱蚊,但是貌似也不是很灵最后我就放弃了这个研究扬声器的念头
    转而研究了一阵子midi那个还是很好玩的,可以模拟128种乐器,我做了个键盘可以演奏各种音色,不过很不顺手呵呵,还有按键冲突,不能弹合旋
    国外有个著名的guitar pro,就是利用这玩意儿做的,还有Overture 用于谈钢琴的
    搂主有兴趣可以研究研究,这方面有兴趣的TX也可以跟我联系,交流交流做点好玩的东东,我挺号音乐这块的,呵呵