mcisendstring相关知识
来源:互联网 发布:ajax循环遍历json数组 编辑:程序博客网 时间:2024/05/16 09:29
下它的使用方法:
设Picture控件的ID为IDC_STATIC1:
CStatic *pStatic=(CStatic*)GetDlgItem(IDC_STATIC1);HWND h=pStatic->GetSafeHwnd();
CString open1;
char buf[256];
open1.Format("open f:\\mpeg\\mpeg1.avi type MPEGVideo Alias movie parent %u Style %u notify",
mciSendString(open1.GetBuffer(open1.GetLength()),buf,sizeof(buf),NULL);
这样F盘下面的mpeg目录下的mpeg1.avi就打开了,其中的type MPEGVideo是指打开MPEG,AVI等类型,如果不加
type MPEGVideo这一句,就是打开WAV,MP3等,Alias movie定义了mpeg1.avi的别名为movie,以后可以通过操
做movie就可以操作mpeg1.avi。
mciSendString("play movie",buf,sizeof(buf),NULL);
mciSendString("play movie fullscreen",buf,sizeof(buf),NULL);
mciSendString("pause movie",buf,sizeof(buf),NULL);
mciSendString("close movie",buf,sizeof(buf),NULL);
char sPosition[256];long lLength;
ciSendString("Status movie length", sPosition, 255,0);lLength=strtol(sPosition, NULL, 10);
其中lLength就是所播放文件的长度。
char chVolume[256];long lVolume;mciSendString("status movie volume",chVolume,255,0);lVolume=strtol(chVolume,NULL,10);其中lVolume就是所播放文件的声音大小。
CString step1;long lPosition;
lPosition=100;
step1.Format("seek movie to %ld",lPosition);
mciSendString(step1.GetBuffer(step1.GetLength()),buf,sizeof(buf),0);
其中lPosition就是要到的播放位置,可以由你指定。
你第一播放完毕后,是否已经stop或者说已经释放了mpeg1.avi的文件资源。如果没有stop或者不释放的话。你是应该播放不了的。因为那个文件正在占用。
mciSendString("Set cdAudio door open wait",NULL,0,NULL)就可以打开光驱门,把其中的open改为closed便可关闭门了!
例子:
Private Sub Command1_Click()
Dim back
back = mciSendString&("CLOSE NN", 0, 0, 0)
End Sub
Private Sub Command2_Click()
Dim back
back = mciSendString&("OPEN " + App.Path + "TEST.mid" + " TYPE SEQUENCER ALIAS NN", 0&, 0, 0)
back = mciSendString&("PLAY NN FROM 0", 0&, 0, 0)
R% = mciSendString&("CLOSE ANIMATION", 0&, 0, 0)
End Sub
Private Sub Form_Load()
Dim back
back = mciSendString&("OPEN " + App.Path + "TEST.mid" + " TYPE WaveAudio ALIAS NN", 0&, 0, 0)
back = mciSendString&("PLAY NN FROM 0", 0&, 0, 0)
R% = mciSendString&("CLOSE ANIMATION", 0&, 0, 0)
End Sub
-----------------------------------------------
思路:在TIMER控件中检测当前文件的播放状态,如果为stopped,那么就重复播放
Option Explicit
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 100
Call mciSendString("close all", 0, 0, 0) '首先关闭所有的MCI设备,避免播放多个音乐文件时声音会重叠
Call mciSendString("open " + "c:\winnt\media\ringin.wav", 0, 0, 0) '打开MCI设备
Call mciSendString("play " + "c:\winnt\media\ringin.wav", 0, 0, 0) '播放MCI设备
End Sub
Private Sub Timer1_Timer()
Dim buffer As String * 128
Dim pos As Integer
Call mciSendString("open " + "c:\winnt\media\ringin.wav", 0, 0, 0)
Call mciSendString("play " + "c:\winnt\media\ringin.wav", 0, 0, 0)
End If
End Sub
---------------------------------------------------------------------
- mcisendstring相关知识
- mciSendString相关使用说明【转】
- mciSendString
- mciSendString
- mciSendString
- mciSendString
- mciSendString
- mciSendString
- mciSendString
- mciSendString
- mciSendString
- MCISendString详细参数
- 有关MciSendString
- MCISendString详细参数
- MCISendString详细参数
- MCISendString详细参数
- MCISendString详细参数
- mciSendString大概
- 如何上传应用到百度应用(图解攻略)
- 枚举类型的定义和应用
- 生产者消费者问题分析
- CString、TCHAR*、char*转换
- 【数据挖掘】决策树之ID3算法
- mcisendstring相关知识
- WPF中DispatcherTimer定时器的原理
- 帧监听器
- HTTP协议详解
- 安卓之返回按钮
- 黑马程序员-java学习之基础篇(一)
- [Qt][ubuntu 13.04]QSettings的使用
- 【二维码生成与解析代码实现】
- 《浅谈机遇》