Symbian 创建播放器界面
来源:互联网 发布:宜家的床垫 知乎 编辑:程序博客网 时间:2024/05/22 04:32
Symbian中一般位图载入,一般可以通过先生成mbm文件,然后通过加载bitmap的方法来显示位图!
创建.mbm文件有两种方法,一种在编译过程中自动创建,也可以使用bmconv工具手动创建。
1.编译过程中创建
需要在程序的MMP文件中添加以下内容:
start bitmap target-file
[targetpath target-path ]
[header ]
[sourcepath source-path ]
source color-depth source-bitmap-list
end
例如:
START BITMAP OggInco.mbm
HEADER
TARGETPATH /system/apps/Ogg
SOURCEPATH ../Bitmaps
SOURCE C12 Ogg.bmp
END
target-file是生成的MBM文件的文件名
targetpath 是可选项。如果未指定,MBM文件将生成在该应用程序的目录
header 也是可选项。如果指定该关键字,将在epoc32/include目录下生成一个.mbg的头文件。生成的.mbg头文件中包含每一个位图的枚举值,在资源文件中需要此文件中生成的枚举值。此例生成 EMbmOggincoOgg
sourcepath 指定原始Windows BMP文件的位置。
source 该语句后的所有BMP文件必须是同样的色深。如果需要在一个单独的MBM文件中包含不同色深的BMP文件,必须指定多个source。
2.使用bmconv工具创建
输入如下命令:
bmconv sprites.mbm /c12ship.bmp /c12bullet.bmp /c12alien.bmp
在bmconv命令后使用/u选项,可以从MBM文件中提取BMP文件,得到的BMP文件色深都是24。也可以使用在命令后指定/v选项来显示MBM文件的内容。在命令行下输入bmconv,查看它支持的所有选项。
mmp在Bitmap的.h文件里给其一个枚举型的ID的数字,这个ID数字产生在系统文件夹下,(epoc32include).Bitmap文件可以使用其ID数字在mbm文件中被存取,每一个ID都以下面的格式构造EMbm<MBM file name><bitmap file name>, 例如EMbmOggincoOgg
可以通过如下方法显示bitmap文件
CFbsBitmap* iBitmap;
void CTestGuiAppView::ConstructL(const TRect& aRect)
{
.....
iBitmap = LoadMyBitmapL();
}
CFbsBitmap* CTestGuiAppView::LoadMyBitmapL()
{
_LIT(KMbmFileName,"//system//apps//Ogg//OggInco.mbm");
TFileName app = CEikonEnv::Static()->EikAppUi()->Application()->AppFullName();
TParsePtr parser(app);
TFileName mbmFile = parser.Drive();
mbmFile.Append(KMbmFileName);
CFbsBitmap* iBgBmp = new (ELeave) CFbsBitmap();
User::LeaveIfError(iBgBmp->Load(mbmFile, EMbmOggincoOgg));
return iBgBmp ;
}
void CTestGuiAppView::Draw(const TRect& /*aRect*/) const
{
......
gc.BitBlt(TPoint(10,10),iBitmap);
}
最后别忘了添加#includ的文件lib文件和在析构函数中delete iBitmap;
1. 获取MBM文件名
如果这个MBM文件放在应用程序的目录下:
如果跟你的应用程序同名,则可以用下面的方法获取:
TFileName mbmFile = CEikonEnv::Static()->EikAppUi()->Application()->BitmapStoreName();
如果不同名,则可以只定义文件名,然后用下面的方法补全路径名:
#include <aknutils.h> // for CompleteWithAppPath()
_LIT(KMbmFileName, "images.mbm");
TFileName mbmFile = CompleteWithAppPath(mbmFile);
如果没在同一个目录下,则可以如下方法获取应用程序的文件名,从它的开头能查到盘符,加上你自己定义的路径和文件名就行了。
TFileName appFile = CEikonEnv::Static()->EikAppUi()->Application()->AppFullName();
2. 加载位图
除了用位图的Load()方法,还可以用下面这个办法:
CFbsBitmap* bitmap = CEikonEnv::Static()->CreateBitmapL(mbmFile, EMbmHelloworldImage1);
好处是省了自己创建CFbsBitmap对象。
- Symbian 创建播放器界面
- symbian在线音乐播放器
- symbian qt 流媒体播放器
- symbian 界面
- 播放器界面20120613
- 手机播放器界面
- symbian oggplay 音乐播放器开发
- symbian oggplay 音乐播放器开发
- symbian oggplay 音乐播放器开发
- Symbian 播放器:关于CVideoPlayerUtility::OpenUrlL()播放rtsp文件
- wince 本地播放器界面
- FlvPlayer播放器界面展示
- 界面活泼的播放器
- symbian 视频播放解决方案
- symbian 视频播放解决方案
- symbian 视频播放解决方案
- 创建音乐盒播放器
- symbian 界面绘制
- COM组件设计与应用(十二)--错误与异常处理
- COM组件设计与应用(十三)--事件和通知(VC6.0)
- COM组件设计与应用(十四)--事件和通知(vc.net)
- Java 实现Rsa 加密
- COM组件设计与应用(十五)--连接点(vc6.0)
- Symbian 创建播放器界面
- COM组件设计与应用(十六)--连接点(vc.net)
- COM 组件设计与应用(十七)——持续性
- 重头再来 不会再轻易放弃
- COM组件设计与应用(十八)——属性包
- 又是MySQL5.0数据库服务器乱码问题!
- 思考设计模式在自助终端软件上的应用 ——Observer模式
- Unicode编程
- COM线程模型