Aprire file .avi

di il
6 risposte

Aprire file .avi

Ciao!

Esiste una funzione che mi apra file .avi o altre estensioni usando il C?

Devo prima con system() aprire il lettore di video e poi dargli il percorso(si può fare?)?

Thx

Per non aprire altri topic:

Dato l'indirizzo di una certa cartella, esiste una funzione che mi permette di vedere quanti file di una certa estensione sono presenti in quella cartella?

6 Risposte

  • Re: Aprire file .avi

    1. Si nella prima guarda sto link

    2. Si nella seconda guarda sto esempio
    
    int CTools::SearchFiles(std::set<std::wstring>	&refvecFiles,
    	const std::wstring		&refcstrRootDirectory,
    	std::wstring			&refcstrExtension,
    	bool					bSearchSubdirectories,
    	bool					fullPath)
    {
    	std::wstring     strFilePath;             // Filepath
    	std::wstring     strPattern;              // Pattern
    	std::wstring     strExtension;            // Extension
    	HANDLE          hFile;                   // Handle to file
    	WIN32_FIND_DATA FileInformation;         // File information
    
    
    	strPattern = refcstrRootDirectory + _T("\\*.*");
    	std::transform(refcstrExtension.begin(), refcstrExtension.end(), refcstrExtension.begin(), tolower);
    	std::transform(strPattern.begin(), strPattern.end(), strPattern.begin(), tolower);
    	hFile = ::FindFirstFile(strPattern.c_str(), &FileInformation);
    	if(hFile != INVALID_HANDLE_VALUE)
    	{
    		do
    		{
    			if(FileInformation.cFileName[0] != '.')
    			{
    				strFilePath.erase();
    				strFilePath = FileInformation.cFileName;
    
    				if(FileInformation.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
    				{
    					if(bSearchSubdirectories)
    					{
    						// Search subdirectory
    						std::transform(strExtension.begin(), strExtension.end(), strExtension.begin(), tolower);
    						std::transform(strFilePath.begin(), strFilePath.end(), strFilePath.begin(), tolower);
    						int iRC = SearchFiles(refvecFiles,
    							refcstrRootDirectory + _T("\\") + strFilePath,
    							refcstrExtension,
    							bSearchSubdirectories,fullPath);
    						if(iRC)
    							return iRC;
    					}
    				}
    				else
    				{
    					// Check extension
    					strExtension = FileInformation.cFileName;
    					strExtension = strExtension.substr(strExtension.rfind(_T(".")) + 1);
    					std::transform(strExtension.begin(), strExtension.end(), strExtension.begin(), tolower);
    					std::transform(strFilePath.begin(), strFilePath.end(), strFilePath.begin(), tolower);
    					if(strExtension == refcstrExtension)
    					{
    						// Save filename
    						std::set<std::wstring>::iterator it;
    						if(fullPath)
    						{
    							it = refvecFiles.find(refcstrRootDirectory + _T("\\") + strFilePath);
    							if(it == refvecFiles.end())
    							{
    								refvecFiles.insert(refcstrRootDirectory + _T("\\") + strFilePath);
    							}
    						}
    						else
    						{
    							it = refvecFiles.find(strFilePath);
    							if(it == refvecFiles.end())
    							{
    								refvecFiles.insert(strFilePath);
    							}
    						}
    					}
    				}
    			}
    		}while(::FindNextFile(hFile, &FileInformation) == TRUE);
    
    		// Close handle
    		::FindClose(hFile);
    
    		DWORD dwError = ::GetLastError();
    		if(dwError != ERROR_NO_MORE_FILES)
    			return dwError;
    	}
    
    	return 0;
    }
    
    
    C'è molto lavoro da fare cmq.
  • Re: Aprire file .avi

    Usare un altro linguaggio semplifica le cose? Ad esempio l'Objective C?
  • Re: Aprire file .avi

    Puoi chiedere alla sezione Objective-C ma non vedo cosa significa velocizzare le cose. Non esistono funzioni pronte a fare ciò che vuoi fare. la domanda del punto 1 io la interpretto come una richiesta di creazione di un lettore video e la due te l'ho già fatta.
  • Re: Aprire file .avi

    Ok, tornando al lettore video..

    Dal link:
    lpSRCRect [in] -> è il puntatore al file avi.. quindi sarebbe lpSRCRect [in] = "C:\\.....film.avi"?
    (ma l'indirizzo associato al puntatore può essere dichiarato nel modo sopra indicato?)

    ma la finestra di destinazione è necessaria?

    quando compilo mi da poi un errore in strmif.h, anzi diciamo un sfilza di errori.. Io uso Code::Blocks devo installare altre librerie? Perché le le direttive del preprocessore che mi chiedeva le ho inserite tutte..
  • Re: Aprire file .avi

    La strada caro mio è lunga.
    lpSRCRect è un rettangolo non centra col filmato.
  • Re: Aprire file .avi

    Guarda sto esempio e cerca di prendere le parti che ti interessano
    http://www.codeproject.com/Articles/3649/Wrapper-class-for-playing-video-with-the-VMR9
Devi accedere o registrarti per scrivere nel forum
6 risposte