Use ffmpeg to transcode .wav to .aac files in bulk

In order to reduce the size of local data for my recent iPhone application, I have to transcode the voice files from .wav to .aac extension. We all know that by using iTunes we could easily convert .wav files to .m4a as long as we change the Import Settings of iTunes’ Preference. Well, an .aac file is the raw data inside a .m4a container, as described here. Command lines are easy to use, however, my problem is I need something to transcode a lot of files all at once.

The following .bat files is the one I used to do so all at once for the following file directory:

for %%A IN (*.wav) DO ffmpeg -i "%%A" "b\%%A.aac"

The generated .aac files are all saved inside ¥b directory, which is something like the following.

a
|_mycmd.bat
|_ffmpeg.exe
|_x.wav
|_y.wav
|:
|:
|_b
  |_x.wav.aac
  |_y.wav.aac

After the transcoding, the ¥b directory contains all the .aac files, however, they all have a .wav.aac at the end of their names. To solve this problem, I used a command line ‘rename’, because all my file names are in regular expressions. If not, you have to use another .bat file to rename the files.

ffmpeg is a quite a good tool to transform lots of sound files to other format, unbelievable easy to use and handy.

Comments

Run iPad(Retina) Simulator in Mac OS X Snow Leopard

1. Upgrade Xcode to 4.2 ( most recent by today 2012/06/26 )
If you get failure message right after the installation begins, it is because of the local date is not preferable for the installation. Change the date to some day a year ago, and try to install again, it will succeed this time. Don’t forget to change the local date back to the correct one.

2. Upgrade Titanium SDK to the most recent one too.

3. Download the installation file for Xcode 4.3.3 for Lion from the following site.
you need to be a iOS developer to be able to access this site though.

https://developer.apple.com/downloads/index.action

Open the contents of the installation file, and finish the following steps to copy retina simulator:


From
/Contents/Developer/Platforms/iPhoneOS.platform/Develop‌​er/SDKs/iPhoneOS5.1
To
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk


From
/Contents/Developer/Platforms/iPhoneOS.platform/DeviceS‌​upport/5.1(9B176)
To
/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1(9B176)


From
/Contents/Developer/Platforms/iPhoneSimulator.platform/‌​Developer/SDKs/iPhoneSimulator5.1.sdk
To
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1‌​.sdk


Rename /Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app to prevent overwriting the file
From
/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app
To
/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app

4. Run the simulator application by clicking

/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app

or typing ‘simulator’ in spotlight

Select Hardware -> iPad(Retina)

5. Run app from Titanium Studio and the retina simulator will show up!

Comments

callback function was triggered before store finished loading

A javascript error: data store contains undefined data.
It seems that the callback function has been invoked before store data comes back from server. The problem is because when the server has not cached the result for the very first time, it will timeout the request. And the timeout of the connection provided to the HttpProxy was at the default value of 30 seconds, by increasing the value will prevent the error happening.

Solutions:
———-
1. In the store definition:

proxy: new Ext.data.HttpProxy({
  url: 'myurl',
  method: "GET",
  timeout: 90000  // milliseconds
})

2. Actually for all the ajax timeout value, on the same web page, could be set as the following:
Ext.Ajax.timeout = 90000;

3. Check the result before further manipulation of the returned store data
mystore.load({params: {param_name: param_value},
callback: function(records, options, success)
{
  if (success && records[0] != undefined)
  {
    // manipulate the data
    var example = records[0].get('item');
  }
}

Comments

Work-wrap in html table

 

<tablestyle=”table-layout: fixed”>

<tr><td style=”word-wrap: break-word”>

LongLongLongLongLongLongLongLongLongLongLong

LongLongLongLongLongLongLongLongLongLongLongLongLongLong

LongLongLongLongLongLongLongLongLongLongLongLongLongLongLongWord

</td></tr></table>

But for my testing, the above code is only good for IE7. Not affect IE8/FF/Chrome.

Safari is looking good without any special code.

Comments

Can’t print in Safari browser after the new window shows up

Question:

Using Javascript window.open(‘….’); script, can’t print in Safari browser after the new window shows up.

The API for window.open() is
open (URL, windowName[, windowFeatures])
For safari browser, code as the following:
var win = window.open(‘about:blank’, ‘anyname’, ”);

URL: for IE, FF, Chrome, empty string will be OK, but safari has to use ‘about:blank’, otherwise the menubar will not show, i.e. page print will not working after the window show.

Comments

iPhone・iPadアプリアップグレード奮闘記

iPhone・iPadアプリを修正し、App Storeに再提出する時、色々苦労しました。
試行錯誤ながら、やっと「Waiting For Review」のステータスが表示されました。6時間かかりましたけど。。。

開発環境:iMac, Titanium Studio
エラー①:Titanium Studioでコードを修正しましたら 、下記のエラーが出てきました:[ERROR] [BEROR]Code Sign error: The default keychain doesn’t have an identity matching the profile ‘「アプリの表示名」’ and identity ‘iPhone Distribution: 「省略」’

その原因は「Development Provisioning Profile」を使っていたこと。早速「Distribution Provisioning Profile」をダウンロードして、ようやく赤いエラーメッセージが消えました。

エラー②:TitaniumでコンパイルしてXCodeのオーガナイザに送りました。そしてアーカイブのところに、「Validate」をクリックしたら、下記のエラーが出てきました:No suitable application records were found

インターネットで調べたら、なんかバージョンの問題でした。それは分かるでしょう。でも、アンドロイドアプリのアップグレードを違って、バージョンは1.0.1から1.0.3にしてもダメでした、2.0.1まで上がらなければうまくいけませんでした。確かに1.1.1は試していませんが、それが通れるんかな?

エラー③:iPhoneとiPadのアイコンのサイズがそれぞれですから、二つのアイコンファイルを用意しました(57X57, 72X72)。またInfo.plistの中にicon fileの代わりにicon filesという配列を追加しました。

エラー④:最初のアプリ、2011年3月ごろ掲載されたアプリが、iPhone向けのスクリーンショットは320X480でした。今回そのサイズも使えなくなりました、640X960にしました。iPadも対応するよう修正しましたから、iPadスクリーンショットも作らなければならないでした。

以上、主な問題でした。「Waiting For Review」のメールがもらったとき、 6時間の苦労が報われたなと思いました!

Comments

cloud_android_app

Macにアンドロイドアプリの開発環境を作る

  1. Android SDKのインストール
    • Android SDK から最新のSDKをダウンロードする。
    • 解凍して、できたフォルダを好きなフォルダに入れる。
    • [DIR]/android-sdk-macosx/tools/android ファイルを実行して、Android SDK Managerで必要なSDKをインストールする。
  2. Eclipse IDE for Java Developersをダウンロードして、解凍されたeclipseフォルダを好きなところに入れる。
  3. Eclipseにandroid ADT Pluginをインストール(原文)
    • Start Eclipse, then select Help > Install New Software….
    • Click Add, in the top-right corner.
    • In the Add Repository dialog that appears, enter “ADT Plugin” for the Name and the following URL for the Location:

      https://dl-ssl.google.com/android/eclipse/

    • Click OK
      Note: If you have trouble acquiring the plugin, try using “http” in the Location URL, instead of “https” (https is preferred for security reasons).
    • In the Available Software dialog, select the checkbox next to Developer Tools and click Next.
    • In the next window, you’ll see a list of the tools to be downloaded. Click Next.
    • Read and accept the license agreements, then click Finish.
      Note: If you get a security warning saying that the authenticity or validity of the software can’t be established, click OK.
    • When the installation completes, restart Eclipse.

Comments

Extjs 3.xからExtjs 4へ移行

とても忙しいでしたが、最近会社のプロジェクトがどうしてもExtjs3.3.1からExtjs 4へ移行したい。

Ext JS 3 _Compatibility Layer をインストールしてみました。

まずはExt JS 3 to 4 Migration Packをダウンロードした。Extjs 3.3.1, Extjs 3.x-compat, Extjs 4.0.7三つのサイトを立ち上がりましたが、一時間ほど比較したところ、手が動かなければ、まだまだ分からない気がしますね。早速弊社のサイトをExtjs 4.0.7に切り替えた。ログイン画面があまり変わらなかったが、ログインしてみたら、ボタンとリンク以外は全部見えなくなった。汗をかくタイプではないから、やる気が湧いてきた。コツコツやりましょう!!

主な変更:

1. ライブラリファイル、html<head>コード

ext-base.jsファイルがなくなります。
前にdebug用ext-all-debug.jsとファイルか或はext-all.jsかbootstrap.jsファイルから自動的に切り替えます。
<link rel=”stylesheet” type=”text/css” href=”http://localhost/ext-4.0.7-gpl/resources/css/ext-all.css” />
<script type=”text/javascript” src=”http://localhost/ext-4.0.7-gpl/bootstrap.js”></script>

つづく

Ext JS 3 to 4 Migration

Comments

中国語文字をピンインに変換用ツール

昨日驚いた発見、こんなツール無料で公開されていて本当にうれしいですね。

声調、文字またはマルチ発音の場合、どう表示されるか、いろいろ組み合わせができるなんて本当に助かります。

http://www.51240.com/zhongwenzhuanpinyin/

Comments