0

私は現在、Manager.createPlayer(InputStream is、String mimeType)を使用してオーディオプレーヤーを作成するプロジェクトに取り組んでいます。

オーディオプレーヤーはエミュレーターで完全に機能します。Nokia C3では、アプリの起動後にオーディオ/ mpegトラックを再生できますが、同じ/他のオーディオを再度再生しようとすると失敗します。メッセージのプリフェッチ時に、「メディアデータのフェッチに失敗しました」がキャッチされます。

プレーヤーを初めて開くときは、通常のライフサイクル(実現、プリフェッチ、開始)が実行されます。トラックが終了すると、停止、割り当て解除、クローズされます。別のオーディオトラックに対してプロセスが繰り返される前に、プレーヤーはnullに設定されます。

何か案は?

これは、プレーヤーの作成に使用されるコードのサンプルです。

    public static Player play(PlayerListener listener, InputStream is, String[] mimeTypes) {
    Player player = null;
    for (int i = 0; i < mimeTypes.length; i++) {    
        try {
            player = Manager.createPlayer(is, mimeTypes[i]);
            player.realize();
            player.prefetch();  
            player.addPlayerListener(listener);
            player.start();
            Log.write("started - " + mimeTypes[i]);
            break;
        } catch (Exception e) {
            Log.write("player fail (" + mimeTypes[i] + "): " + e.getMessage());
            player = null;
        } catch (Throwable e) {
            Log.write("player fail (" + mimeTypes[i] + "): " + e.getMessage());
            player = null;
        } 
    }
    return player;
}
4

1 に答える 1

0

答えは、再生しようとしているMP3のファイルサイズが大きすぎるということのようです。サイズを小さくすることで、問題は解決しました。

2MBから150kbまで。

なぜこれが起こるのか、誰かが光を当てることができれば、それは非常にありがたいことです。

于 2012-12-24T08:21:03.630 に答える