调压器220v:检测内置相机应用程序新拍摄的照片和视频片段 - Forum Nokia Wiki

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 05:43:18

Search All Forum Nokia Devices Web Pages Tools & SDKs Documents Examples Knowledge Base Discussion Boards   Blogs Wiki ProjectsWiki

English |中文 |Français |Русский
Log in |Join Forum Nokia
?
Home
DesignOverviewDesign processDesign galleryUser experience
DevelopOverviewQtWebJavaOther TechnologiesTechnical support
DistributeOverviewOvi Store statisticsOvi Store guidelinesPackaging and signingMarketing your applicationsPublic relations guidelines
DevicesOverviewDevice specificationsRemote device access
LibraryOverviewDocumentationLearningTools and downloadsCode examplesMultimedia
CommunityOverviewDiscussion BoardsWikiBlogsProjectsGroupsChampions

Home |Community|Wiki|检测内置相机应用程序新拍摄的照片和视频片段
Wiki
Create New Wiki Page
Wiki HomeWiki SearchFeedbackWiki EtiquetteWiki HelpFeatured ArticlesFeatured VideosTemplatesGlossary
Software Platforms- Maemo- S60/Symbian- Series 40
Development Platforms- Qt-- Qt Quick-- Qt Mobility- Java ME- Symbian C++- Python
Web- Web Runtime- Flash Lite- Browsing- Mobile Web Templates
Mobile Design- Design Patterns- Themes / Carbide.ui- Usability
Tools and SDKCode ExamplesKnowledge BaseTechnology AreasDevelopment Process
中文Wiki Chinese日本語Wiki JapanesePortuguese/BrazilianRussian
What links hereSpecial pages
Printable versionDownload as PDF
Article
Comment
View source
History
Categories:Lang-CN |Code Examples |How To
This page was last modified on 5 August 2010, at 18:29.
检测内置相机应用程序新拍摄的照片和视频片段
From Forum Nokia Wiki
ID N/A Creation date Auguest 6th, 2010
Platform Symbian Tested on devices N73, N95, E72, 5800XM, N8
Category Symbian C++ Subcategory S60 3rd Edition, S60 3rd Edition FP1, S60 3rd Editino FP2, S60 5th Edition, Symbian^3
Keywords (APIs, classes, methods, functions): RProperty KPSUidCamcorderNotifier KCamLatestFilePath
概述
本文描述了如何在内置相机应用程序新拍摄了照片和视频片段后获得通知,以及如何获取该照片或视频片段的文件名。
方案
当有新照片或视频片段被拍摄并保存到文件后,S60相机应用程序会使用一个Publish&Subscribe属性广播该文件的文件名,参见在此处和此处S60相机应用程序是如何发布该 文件名的。
这就是说,我们只要使用一个活动对象来监听这个P&S属性就能获得最后拍摄的文件,参见下面的代码片段:
步骤1: 在使用该P&S属性前必须先定义它,因为该属性可能还没被定义过。注意因为应用程序的进程SID与该属性的UID不同,因此应用程序必须具有WriteDeviceData能力。
// CameraFileObserver.cpp
...
// UID和属性的键值是从S60相机应用程序的源代码里抄来的。
const TUid KPSUidCamcorderNotifier = {0x101F882E};
const TUint32 KCamLatestFilePath = 0x00000001;
...
void CCameraFileObserver::ConstructL()
{
// 需要WriteDeviceData能力,如果属性的UID跟进程的SID不一样
TInt err = RProperty::Define(KPSUidCamcorderNotifier, KCamLatestFilePath, RProperty::ELargeText);
if(!((err==KErrNone)||(err==KErrAlreadyExists)))
{
User::LeaveIfError(err);
}
...
}
...
步骤2: 现在可以监听事件了。
// CameraFileObserver.cpp
...
void CCameraFileObserver::ConstructL()
{
...
err = iProperty.Attach(KPSUidCamcorderNotifier, KCamLatestFilePath);
User::LeaveIfError(err);
}
...
void CCameraFileObserver::Start()
{
Cancel(); // Cancel any request, just to be sure
iProperty.Subscribe(iStatus); // 订阅事件
SetActive(); // Tell scheduler a request is active
}
步骤3: 在新拍摄了一个文件后,活动对象的RunL()函数被触发,此时可以用RProperty::Get()获取带全路径的文件名。
// CameraFileObserver.cpp
...
void CCameraFileObserver::RunL()
{
TInt err = iStatus.Int();
iProperty.Subscribe(iStatus);
SetActive(); // Tell scheduler a request is active
if(err==KErrNone)
{
TFileName fn;
GetLastFileL(fn);
iObserver.NewCameraFileL(fn);
}
}
...
void CCameraFileObserver::GetLastFileL(TFileName& aFileName)
{
TInt err = RProperty::Get(KPSUidCamcorderNotifier, KCamLatestFilePath, aFileName);
User::LeaveIfError(err);
}
然后观察者就能操作新拍摄的文件了,在本例中我们仅仅用一个全局通知显示文件名,实际上我们可以实现更复杂的用例,比如可以写一个实用程序将文件上传到网络硬盘或者用户的blog上。
...
void CKJASDFSGJMAppUi::NewCameraFileL(const TFileName& aFileName)
{
// TODO: show the file name
CAknGlobalNote* gn = CAknGlobalNote::NewLC();
gn->ShowNoteL(EAknGlobalInformationNote, aFileName);
CleanupStack::PopAndDestroy(gn);
}
...示例程序
完整的示例程序:KJASDFSGJM(LastCameraFile).zip
本示例程序在S60第五版SDK上构建通过,并且先后在以下设备上测试通过:S60第五版仿真器、N73(基于S60 3rd Edition)、N95(基于S60 3rd Edition FP1)、 E72(基于S60 3rd Edition FP2)、5800 XM(基于S60 5th Edition)和N8(基于Symbian^3)。我们有理由相信这个技巧在诺基亚生产的S60第三版至Symbian^3设备上均适用,但它在其它手机生产商的S60手机上未必有效。例如该示例程序在索尼爱立信U1i/U5i/U8i系列手机上可能不工作,因为这个系列的手机使用的是索尼爱立信特有的相机应用程序,而非S60相机应用程序。
如何使用:
对于S60第五版仿真器:
1. 为WINSCW构建应用程序并在仿真器上启动它。

2. 启动相机应用程序,然后拍摄一张照片。

当拍摄/后处理完成后会弹出一个全局通知显示照片的文件名。

对于S60设备:
1. 为设备构建应用程序,然后用一个能授权WriteDeviceData能力的证书为sis签名。将签名后的sis安装到设备上,然后启动应用程序。
2. 启动相机应用程序,然后拍摄一张照片或录制一段视频。
当拍摄/保存/录制完成后会弹出一个全局通知显示照片的文件名。(见示例程序\docs目录中的录屏)
参考
S60相机应用程序的源代码
Publish and Subscribe
论坛讨论
Retrieved from "http://wiki.forum.nokia.com/index.php/%E6%A3%80%E6%B5%8B%E5%86%85%E7%BD%AE%E7%9B%B8%E6%9C%BA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%96%B0%E6%8B%8D%E6%91%84%E7%9A%84%E7%85%A7%E7%89%87%E5%92%8C%E8%A7%86%E9%A2%91%E7%89%87%E6%AE%B5"
Related Wiki Articles
No related wiki articles found
Developer programs
Support
News and events
Contact and feedback |Sitemap|Terms and conditions |Privacy policy
京ICP备05048969号 | © Copyright Nokia 2011 | All rights reserved

All Forum Nokia
Devices
Web Pages
Tools & SDKs
Documents
Examples
Knowledge Base
Discussion Boards  
Blogs
Wiki
Projects