none
VB.NET中My命名空间中audio播放音乐的问题 RRS feed

  • 常规讨论

  • 我使用下面一句来播放在C下面的music这个wav文件,

     My.Computer.Audio.Play(“C:\music.wav”, AudioPlayMode.WaitToComplete)

    我的问题是后面的参数

    AudioPlayMode.WaitToComplete 这里如果使用等待完成,那么只要执行完这一句后,当执行下一条语句的时候

    音乐播放就自动被终止了(而如果使用 AudioPlayMode.Background 音乐就会在后台全部播放完)

    这个是为什么? 这样看来这个参数似乎可用性就不大了。。或者它能用在特定场合?

    还希望知道的朋友赐教 ~ 谢谢 ~!

    2009年12月28日 8:03

全部回复

  • 得看你到底要做什么。不在前台播放,也不在后台播放,你到底想怎么播放?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2009年12月28日 19:36
    版主
  • 我做了测试我这里都是正常的
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            My.Computer.Audio.Play("C:\Windows\winsxs\x86_microsoft-windows-speech-userexperience_31bf3856ad364e35_6.1.7600.16385_none_1be0462ead20352d\Speech Disambiguation.wav", AudioPlayMode.WaitToComplete)
            MessageBox.Show("hahaha")
        End Sub

    当声音播放完毕后才会弹出提示框

    WaitToComplete只会播放一次 播放完毕后再会执行其它的语句

    而要循环播放可以使用Backgroudloop
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年12月29日 1:46
    版主
  • 我的意思是 使用WaitToComplete之后 音乐并没有播放完毕就弹出对话框了


            My.Computer.Audio.Play("c:\magic.wav", AudioPlayMode.WaitToComplete)

            MsgBox("mmmm")

    像上面这样 播放的音乐时长30秒,但是只播放了4~5秒 就弹出对话框了

    但是 使用background则能完全播放完才弹出对话框



    这样看来 WaitToComplete这个参数并没有等待播放的完成。。。
    2009年12月30日 12:18
  • 我没有重现这个状况,WaitToComplete是在 播放完毕后再会执行其它的语句的。

    Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            My.Computer.Audio.Play("D:\Book\bhk_ful.wav", AudioPlayMode.WaitToComplete)
            MessageBox.Show("here") ‘播放完了,才弹出
        End Sub
    End Class


    Best regards,
    Riquel
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2009年12月31日 7:59
    版主
  • 不 我的测试是只播放了大约 5~6弹出了

    如果你们用的音频文件是在5秒之内的 那么肯定能播放完

    我用了一个30秒的WAV文件 是用一个MP3转换过来的

    结果 播放到大约6秒还是 第7秒的时候 播放终止了 弹出对话框
    2010年1月2日 6:15
  • 我用的WAV文件是2分钟长的,没有重现这个情况。请把你的项目情况告诉我们,让我们看一下:

    1 Windows的版本
    2 .NET Framework的版本


    Best regards,
    Riquel
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2010年1月4日 1:26
    版主
  • WINDOWS XP SP3 .NET 2.0 用的是VS2008编译
    2010年1月9日 12:35
  • 没有重现这个情况,WindowsXP SP2,.NET2.0.

    Best regards,
    Riquel
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.
    Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
    2010年1月11日 9:27
    版主