返回列表 发帖

[方法技巧] 在WinCC Runtime Advanced/Professional 中通过脚本播放声音文件

通常当特定的错误消息被被触发时,除了在操作面板上有视觉显示外,还需要声音信号。 为此,当使用PC Runtime时,可以通过使用windows的“媒体播放器”播放声音文件。


WinCC Runtime Advanced


在WinCC Runtime Advanced 中,你需要一个外部媒体播放器来播放声音文件。在
Window7 中播放器为“wmplayer.exe”。

  • 创建如下图的脚本,在第四行编辑声音文件的路径。
       
  • 调用该“PlaySound”脚本,例如,通过消息的到达或者按钮事件调用。

下载
  PlaySound.txt (1 KB)

WinCC Runtime Professional

    1.创建如下图的C脚本:


    2.如果替换掉“PlaySoundA ("C:\\mysound.wav")路径中的声音文件就能实现播放其他的声音文件。

    3.脚本链接到相关系统事件,例如:单击按钮或屏幕更改。

    4.当事件发生时声音就会被播放。







实现此功能的要求是必须安装声卡。


PlaySoundA函数的说明:

1.
参数char* pszSound

      指定声音文件 (*.wav 文件) 的全路径。

2.
参数char* hmode

      总为 0

3.
参数DWORD dwflag

       SND_SYNC = 0x0000声音文件播放一次,该脚本一直等到播放结束。

       SND_ASYNC = 0x0001声音文件播放一次,同时并行处理该脚本

       SND_NODEFAULT = 0x0002如果未找到该声音文件,则不播放默认值,而是什么也不播放。

       SND_LOOP = 0x0008重复播放该声音文件直到下个 PlaySoundA 调用 (只能通过 0x0001) => 总是指定 0x0009

    这些参数也可通过逐位逻辑‘或’进行组合 (如:SND_ASYNC | SND_LOOP)

Download
PlaySound_WinCC_Prof.txt (1 KB)



备注

媒体播放器默认隐藏并且播放完声音文件后不会自动退出。更多关于windows媒体播放器的信息请参见

Microsoft MSDN.

附加关键字
WAVE 文件, WAV,,MIDI 文件,MID,,MP3, 信号,听觉,声音, 喇叭


https://support.industry.siemens.com/cs/document/109481492/%E5%A6%82%E4%BD%95%E5%9C%A8wincc-runtime-advanced-professional-%E4%B8%AD%E9%80%9A%E8%BF%87%E8%84%9A%E6%9C%AC%E6%92%AD%E6%94%BE%E5%A3%B0%E9%9F%B3%E6%96%87%E4%BB%B6-?dti=0&lc=zh-CN

欢迎光临:逐梦论坛

C语言播放声音最简单的两种方法

1、 假设仅须要播放波形文件wav格式的声音,非常easy。仅仅需一句话:
PlaySound(TEXT("Data\\1.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
在这里仅仅提供方法,具体问题自己去探索。
完整C语言代码:
#include <windows.h>
#pragma comment(lib, "Winmm.lib")

int main(int argc, char *argv[])
{
        //文件类型仅仅能是波形文件
        PlaySound(TEXT("Data\\1.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
        Sleep(50000);                                                        //等待声音播放
        return 0;
}

2、假设想播放mp3格式的声音,非常麻烦,可是有一种方法非常easy。也仅仅需一句话:
mciSendString("play Data\\1.wav",        NULL,0,NULL);
完整C语言代码:
#include <windows.h>
#pragma comment(lib, "Winmm.lib")            //For MCI(Media Control Interface,媒体控制接口)

int main(int argc, char *argv[])
{
    //文件类型能够是:mp3、wav、avi等
    mciSendString("play Data\\1.wav",        //MCI命令字符串
        NULL,                                //存放反馈信息的缓冲区
        0,                                    //缓冲区的长度
        NULL);                                //回调窗体的句柄,一般为NULL
    Sleep(50000);                            //等待声音播放
    return 0;
}
欢迎光临:逐梦论坛

TOP

返回列表

Powered by Discuz! 7.2   论坛QQ群:逐梦论坛群

© 2001-2021 Comsenz Inc. 本站服务器由0634云主机提供 鲁公网安备 37120302000001号