首先感谢taotao(学苑ID:jintaohu)童鞋和m4gic童鞋的辛勤付出,没有你们两位的研究,iphone版的语音功能不可能这么快实现。

要实现iphone版SuperMemo的语音功能,首先要解决的是如何制作出一体式的smpak文件,这一工作,舍得称其为"打包",就是把当前课程的所有内容都放到一个smpak文件里,只有这样,音频文件才有可能被iphone版的SuperMemo读取.

光有smpak包还不够.你还需要修改SuperMemo的数据库文件(smm.dat),当你通过iphone从SuperMemo官网把课程下载完毕时,程序会做一个导入的工作.很显然我们自制的smpak无法享受这一待遇了,那就需要进行手工修改smm.dat文件.

首先做好smm.dat的备份,以免操作失误.用ifuxbox之类的工具将smm.dat从iphone中复制出来,然后开始用SQLiteExpert对数据库进行修改.事实上,我们只要改两个表的数据就行.下面是基本的步骤:

第一个表叫COURSES,顾名思义就是用来储存课程基本信息的.这个表修改的重点是往里边写入guid号(相当于课程的身份证号,可以在course.xml文件里找到)、课程名称,同时记下CourseId这个数值,以便下一步使用;

第二个表叫ITEMS,这是用来储存课程内容的.当前课程有几个item文件,就得往里写几条记录.修改的重点有以下几条:

  • Id:手工编一个,通常取当前表最大数加1即可;
  • CourseId:上一步得到的数据,这是跟COURSES表关联的重要数据;
  • Number:填item文件的编码即可,如item00289.xml,那就填"289";
  • Name:参看course.xml中相应item的name值.
  • Question和Answer:重中之重,需要将Item文件中的Question段和Answer段分别写入.比如下面这个文件:

<?xml version="1.0" encoding="utf-8"?>
<item xmlns="http://www.supermemo.net/2006/smux">
  <lesson-title>Cambridge English Grammar in Use</lesson-title>
  <chapter-title>Have got and Have</chapter-title>
  <question-title>选择正确的答案(多选题)</question-title>
  <question>Evan and Jane had a farm in Wales, ______ they? Are they still there?<br/><checkbox display="inline"><option correct="true">didn’t</option><option>weren’t</option><option>hadn’t</option></checkbox><br/></question>
  <answer></answer>
  <answer-audio>true</answer-audio>
  <modified>2011-09-12</modified>
<template-id>10005</template-id>
<gfx-1 id="5" group-id="1" />
</item>

那么你要写入的内容是:

Evan and Jane had a farm in Wales, ______ they? Are they still there?<br/><checkbox display="inline"><option correct="true">didn’t</option><option>weren’t</option><option>hadn’t</option></checkbox><br/>

  • command/lessontitle/chaptertitle:按item文件里的相应内容写入,其中command即question-title;
  • AnswerAudio和QuestionAudio:要想使用语音功能,此二项必须激活.但要注意它有一个前提条件,就是你所打的包里已经包含了音频文件.如上面这个xml文件所示, <answer-audio>true</answer-audio>表示使用了AnswerAudio,则只需激活AnswerAudio即可(需点击AnswerAudio下的checkbox,使其从灰色变成黑色勾选状态);

改完这个,还要做一件事情,就是把smpak文件改名,文件名用guid表示,如Cambridge English Grammar in Use这个课程的guid是261ad8b9-3908-5d0f-1086f329a4ed,那就把文件名改为:261ad8b9-3908-5d0f-1086f329a4ed.smpak.

最后,只要把修改完的smm.dat连同smpak文件复制到SuperMemo的Documents文件夹,就大功告成了.复制文件时建议关闭SuperMemo.

 

附:iphone版《剑桥中级语法》课程Demo(只有两道题):
http://www.filedude.com/download/ZmIzFOsbhL4d50826a1d
注意,必须按上面所讲的方法修改数据库,修改量不大,修改时可以参考下面的文件内容:
EGU修改参考文件.rar

本文版权归舍得英语魔法学苑所有,欢迎转载,转载请注明作者和出处。谢谢!
作者:
舍得
首发:
舍得@学习力博客

 

Tags: , , ,

发表评论

*