none
WM 6 Professional SDK 中使用 PlaySound 播放wave无声音 RRS feed

  • 问题

  • 当我在 Windows Mobile 6 Professional SDK 中制作 WM6 应用程序的时候, 想P/INVOIKE  coredll.dll 中的 playsound函数播放 wav 声音, 但程序运行正常且 playsound返回值为 true, 却无论如何听不到声音, 具体代码如下, 请帮忙看看是什么原因。 另外发现 POCKETPC2003 可以用 wndproc获取消息, 但 wm6 下不行, 并且也不支持thread方法,好像 pocket2003 & smartphone 环境下更接近 PC, 不知到这是什么原因。

    VB.net 2005  wav 文件经测试可以用其他软件播放,并且即使换成标准 wave格式也不出声音, 不是文件格式问题。

    Imports System.Runtime.InteropServices     '引及Net框架中对底层操作支持的命名空间
    Public Class Mainform
    Public Declare Function PlaySound Lib "CoreDLL.dll" (ByVal lpszSoundName As String, ByVal hModule As Integer, ByVal dwFlags As Integer) As Integer

    Private Sub Test()
         PlaySound("\Storage Card\Program Files\Myproject\sound.wav", IntPtr.Zero, SND_ASYNC Or SND_FILENAME)
    End Sub
    2009年8月17日 4:57

答案

  • 你好。
    可以通过DllImport使用aygshell.dll中的SndPlaySync或者SndPlayAsync这两个函数。
    详细使用方法可以参考SDK自带的例子,位置\Common\CS\RingtoneManager
    希望对你有用。


    施炯
    2009年8月17日 8:04
    版主

全部回复

  • 你好。
    可以通过DllImport使用aygshell.dll中的SndPlaySync或者SndPlayAsync这两个函数。
    详细使用方法可以参考SDK自带的例子,位置\Common\CS\RingtoneManager
    希望对你有用。


    施炯
    2009年8月17日 8:04
    版主
  • 非常感谢您的帮助,因为我是用VB。NET编程,所以我试着看看如何在VB调用此函数。
    2009年8月27日 8:24