×
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.
109 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×