2010-12-19 15 views
0

BlackBerry用に開発する方法を学ぶために書いている非常に小さなアプリで再生するために短いMP3ファイルを取得するのに問題があります。BlackBerryでサウンドを再生するとエラーが発生する

私はBlackBerry開発の初心者だから、私のJavaプログラミングに問題があるかどうかわからないので、アプリケーションのEclipseプロジェクトをhttp://stroke.sampablokuper.com/stroke.zipにアップロードしました。私のプロジェクトで、または他の何か。

これは非常に小さなプロジェクトです。Javaファイルは1つのみです。& 3つのメディアファイルです。コンピュータ上のCurve 8520シミュレータでエラーなしで実行できるかどうか確認してください。

考えているのは、ユーザーがトラックボール/トラックを「下に」押したときにスクロールしたときに、パッドの場合、サウンドは再生されますが、サウンドの代わりにエラーメッセージが表示されます。javax.microedition.media.MediaException

私はこれをデバッグしようとしましたが、私が言うように、私はBB開発の初心者です。私が設定したブレークポイントから得られる情報をどうやって理解するのか本当に分かりません。

私が間違っている場所を教えてください。

私はクリスマスの前にこれを終わらせたいと思っています。助けてください!事前に

感謝:)

編集:ここでは、コードの関連部分を極力ストリップダウン、です:

public boolean navigationMovement(int dx, int dy, int status, int time) { 
    if (dx == 0 && dy == 1)// DOWN 
    { 
     makeNoise("growl"); 
    } 
    return true; 
} 

private void makeNoise(String action) { 
    if (action == "growl") { 
     Dialog.alert("GROWL"); 
     try 
     { 
      Player p = javax.microedition.media.Manager.createPlayer("growl.mp3"); 
      p.realize(); 
      VolumeControl volume = (VolumeControl)p.getControl("VolumeControl"); 
      volume.setLevel(30); 
      p.prefetch(); 
      p.start(); 

     } 
     catch(MediaException me) 
     { 
      Dialog.alert(me.toString()); 
     } 
     catch(IOException ioe) 
     { 
      Dialog.alert(ioe.toString()); 
     } 
    } 
    invalidate(); 
} 

さらに編集私はへのリンクを削除しました問題は実際にコードに含まれているように見えて、現在は解決されているので、プロジェクトをダウンロードしてください。

+1

ですEclipse。 MediaExceptionが発生しているので、おそらくプロジェクトレイアウトに問題はありません。ユーザが「下へ」ボタンを押したときに実行されている関連するコードを掲示する。 –

+0

十分に公正です。完了、&あなたの有益なコメントupvoted :) – sampablokuper

答えて

0

あなたはSDカード上のmp3ファイルを持っている場合は、あなたのURIはfile:///SDCard/<file>.mp3する必要がありますが、あなたは、アプリケーションからそれを再生しているならば、getResourceAsStreamは、私はそれはあなたのプロジェクト全体をダウンロードしにインポートするために誰かを求めるためにあまりにも多くのことだと思う答え

0

問題は、.createPlayerメソッドに渡される文字列がURIである必要があることが判明しました。

私は最終的にあきらめる前に、ラインfile:///growl.mp3に沿って多くのバリエーションを試してみました(誰がBlackBerryアプリ内のファイルを指しているの正しいURI構文を知っていれば、コメントしてください!)と、これにセトリング:

InputStream is = getClass().getResourceAsStream("growl.mp3"); 
Player p = javax.microedition.media.Manager.createPlayer(is,"audio/mp3"); 

それは比較で少し難解ですが、少なくともそれは動作します!

関連する問題