?
Solved

Use mmio to handle multiple files played by MCI?

Posted on 1997-07-31
3
Medium Priority
?
219 Views
Last Modified: 2013-12-03
Hi,
  I try to play video from a CDrom using MCI commands, Under VC++4.2 and Win95. I know the MCI driver I have uses mmio functions to read data. My question is, since there are more than one video file in a disk(like a Video CD), how I can play video seamlessly? I know I need to define my own mmio procedure(mmioProc), but does one mmioProc only refers to one opened mmio file? Because the handle is in the MMIOINFO. In order to handle multiple file, which is the right approch?
a. detecting the end of file, close mmio then open the next file. I think it's too slow.
b. open all video files, each has its own handle, while changing file, assign the new handle to MMIOINFO, then call mmioProc.
c. other method. Please do tell me more.
I am a newbie in this area, please help.
0
Comment
Question by:danli020797
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 3

Accepted Solution

by:
vinniew earned 400 total points
ID: 1402557
b. is the correct answer as long as you are not talking about an obscene number of video files.


0
 

Author Comment

by:danli020797
ID: 1402558
One more thing. Do you think this will work in terms of seamless playing? Since the only way I can detect the end of the file is either setup a multimedia timer or notify by MCI, I don't want the user to notify any difference while playing between two files. Do you know any other way to accomplish that. Also if I open all file at once( as many as about 100), will that take lost of resources?
Thank you
0
 
LVL 3

Expert Comment

by:vinniew
ID: 1402559
If you buffer things correctly, you shouldn't have any problems opening that many files.  If you have the time to program, however, I would think about just keeping 3 or 4 open at once.  Then you could just start a thread to open up another one while you were playing.

In regards to detecting the end of the file:

1. Keep a counter of how many records you've read.
2. Determine from file size how many records are possible.
3. compare


In regards to resources opening a file:

1. If you use CFile, expect to use about 1K per open request
2. If you use FILE*, expect to use about 100 bytes.
3. In either case, you should have plenty of room.

Hasta,

V

0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This tutorial is about how to put some of your C++ program's functionality into a standard DLL, and how to make working with the EXE and the DLL simple and seamless.   We'll be using Microsoft Visual Studio 2008 and we will cut out the noise; that i…
This article describes how to programmatically preset the "Pages per Sheet" option that's available with most printer drivers.   This setting lets you do "n-Up" printing, where two, four, or more pages are printed on each sheet of paper. If your …
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…

800 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question