Home > APIs > AppServer API > Examples > Asset Management > Get a List of Clips
Get a List of Clips
Get a List of Clips
The sample code below shows how you can get a list of clips in a bin and then get properties of those clips. The way you do it is:
1. Call EnumerateAssets to create a list of the clips in a bin
2. Query the list for the clip properties you want (click here for a list of asset properties you can query).
3. Print the results.
[C#] // create a mediamgr object IMediaMgr mediaMgr = iappServer.CreateMediaMgr(appName); // enumerate the assets in the v:\default bin int count = 0; int cookie = mediaMgr.EnumerateAssets("V:", "default", ref count); // let's query for 3 properties of the clip: the name, video compression type, // and the length string query = "name+videoCompressionType+lengthstr"; // Other properties you can query: // "uri", "name", "assettype", "created", "modified", "attributes1", // "attributes2", "videoformat", "videocompressiontype", "firsttimecodemask", // "lengthstr", "maxlength", "markin", "markout", "markinstr", "markoutstr", // "dropframe", "locked", "hidef" // for other properties search the guide for "Asset properties" // Let's only get info on the first 100 clips in the bin int maxCount = 100; object dataObj = null; // Now, let's query for the results we want: // query it for the properties we setup above, // start with the 0th element, // go up to a max of 100 clips // capture the actual number of clips we're getting data back from, // and return the results in a data object mediaMgr.GetResultProperty( cookie, query, 0, maxCount, out count, out dataObj); Console.WriteLine("Found " + count + " clips in V:\\default\\"); // GetResultProperty for clip data returns a 2 dimensional array // - the first dimension represents the clip // - the second dimension represents the properties of the clip // so let's cast the dataobj to a clip array first object[] clipArray = (object[]) dataObj; // loop thru each clip foreach (object clip in clipArray) { // then cast the clip object to an array of properties for each clip object[] propertyArray = (object[]) clip; // and finally print out the clip properties for each clip Console.WriteLine("Clip: {0} Created: {1} Length: {2}", propertyArray[0], propertyArray[1], propertyArray[2]); } // make sure that you close the results after enumerating volumes, bins, or assets. // if you don't, you will run out of database selectors! mediaMgr.CloseResults(cookie); mediaMgr.Dispose();
[C++] // create a mediamgr object IMediaMgrPtr spMediaMgr; HRESULT hr = spAppServer->CreateMediaMgr(m_bstrAppName, &spMediaMgr); // enumerate the assets in the v:\default bin long cookie; long count = 0; BSTR bstrXmlData = NULL; // must set this to NULL! spMediaMgr->EnumerateAssets(_bstr_t("V:"), _bstr_t("default"), &count, &cookie); // let's query for 3 properties of the clip: the name, video compression type, // and the length _bstr_t sQuery("name+videoCompressionType+lengthstr"); // Other properties you can query: // "uri", "name", "assettype", "created", "modified", "attributes1", // "attributes2", "videoformat", "videocompressiontype", "firsttimecodemask", // "lengthstr", "maxlength", "markin", "markout", "markinstr", "markoutstr", // "dropframe", "locked", "hidef" // for other properties search the guide for "Asset properties" // Let's only get info on the first 100 clips in the bin int maxCount = 100; // Now, let's query for the results we want: // query it for the properties we setup above, // start with the 0th element, // go up to a max of 100 clips // capture the actual number of clips we're getting data back from, // and return the results in a data object VARIANT varResult; spMediaMgr->GetResultProperty( cookie, sQuery, 0, maxCount, &count, &varResult); printf("Found %d clips in V:\\default\\\n", count); // create a safe array for the clips SAFEARRAY *pClipArray = varResult.parray; VARIANT *pVar = NULL; long arrClipIndex[1]; // get the first clip arrClipIndex[0] = 0; SafeArrayPtrOfIndex(pClipArray, arrClipIndex, (void **)&pVar); // create a safe array for the clip's properties SAFEARRAY* pPropertyArray = pVar->parray; long arrPropertyIndex[1]; // get the first property arrPropertyIndex[0] = 0; SafeArrayPtrOfIndex(pPropertyArray, arrPropertyIndex, (void **)&pVar); CString sName = pVar->bstrVal; // get the second property arrPropertyIndex[0] = 1; SafeArrayPtrOfIndex(pPropertyArray, arrPropertyIndex, (void **)&pVar); CString sVideoCompressionType = pVar->bstrVal; // get the third property arrPropertyIndex[0] = 2; SafeArrayPtrOfIndex(pPropertyArray, arrPropertyIndex, (void **)&pVar); CString sLength = pVar->bstrVal; printf("Clip name: %s video compression type: %s length: %s\n\n", sName, sVideoCompressionType, sLength); // etc... // make sure that you close the results after enumerating volumes, bins, or assets. // if you don't, you will run out of database selectors! spMediaMgr->CloseResults(cookie);