×
Namespaces

Variants
Actions

媒体文件API

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

代码示例
文章
hoolee 在 29 Jul 2008 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

CS001036


设备, 软件 版本:

S60 3rd Edition, FP2


Contents

详细描述

注意这里的API并非公开SDK中的一部分。可以在这里找到SDK API Plug-in


Media File API可以用来更新多媒体文件夹。它还提供了一个API检查重复的媒体文件,检查当前文件名是否是手机内存或多媒体存储卡中的唯一文件名。


头文件

 #include <MGXFileManagerFactory.h>
#include <CMGXFileManager.h>
#include <CMGXFileNotificationHandler.h>
#include <MMGXFileNotificationObserver.h>


链接库

LIBRARY   MGXMediafileapi.lib


需要的能力

CAPABILITY  ReadUserData WriteDeviceData


示例代码

生成File Manager和the file notification handler

CMGXFileManager* iFileManager = MGXFileManagerFactory::NewFileManagerL(
iCoeEnv->FsSession() );
CMGXFileNotificationHandler* iFNH =
MGXFileManagerFactory::NewFileNotificationHandlerL();


更新一个文件

有几种不同的文件更新类型:

1)对多媒体文件夹的普通更新

2)当从viewer application存储文件时通知多媒体文件夹

3)重命名一个媒体文件时通知多媒体文件夹

4)更新多媒体文件夹文件(一个数组中的文件)


下列代码片段将发送一个更新:

// Create an array of descriptors for the selected files
CDesCArrayFlat* fileArray = new (ELeave) CDesCArrayFlat(5);
CleanupStack::PushL(fileArray);
TBool allowMultiple(EFalse);
TBuf <20> lHeading;
lHeading.Append(_L("Image Files"));
// Open the dialog. this is overloaded
TBool ret = MGFetch::RunL(*fileArray,EImageFile,allowMultiple,KNullDesC,lHeading);
if( ret )
{
BaflUtils::RenameFile(CEikonEnv::Static()->FsSession(),
fileArray->MdcaPoint(0),_L("c:\\Data\\Images\\new.bmp"));
iContainer->SetTextL( _L("File Renamed") );
iFileManager->UpdateL(fileArray->MdcaPoint(0),_L("c:\\Data\\Images\\new.bmp"));
}
else
{
iContainer->SetTextL( _L("File Not Selected") );
}
CleanupStack::PopAndDestroy(); // fileArray

检查重复的文件名:

TBool ret = iFileManager->SuccessFileNameL( iFileName, EDriveC );
//To check for file in phone memory.
//iFileName is filename to be checked.
//To check if it exists in MMC use "EDriveE" instead of "EDriveC"


注册与注销监控 你可以注册一下,以便多媒体文件改变时获得通过(如有新的文件夹产生或已有文件被修改,被删除等)

1)从MMGXFileNotificationObserver派生你的类,并且完成一个纯虚函数

HandleFileNotificationEventL


2)注册监控

iFNH->SetObserver( *this )


3)注销停止接收通知

iFNH->RemoveObserver(*this);


示例代码

File:MediaFileEx.zip

This page was last modified on 15 December 2011, at 08:55.
69 page views in the last 30 days.