2011-01-15 3 views
4
01-15 00:57:08.660: WARN/System.err(25286): java.io.IOException: setDataSourceFD failed.: status=0x80000000 
01-15 00:57:08.660: WARN/System.err(25286):  at android.media.MediaPlayer.setDataSource(Native Method) 
01-15 00:57:08.660: WARN/System.err(25286):  at android.media.MediaPlayer.setDataSource(MediaPlayer.java:854) 
... 

に失敗しました。これはHTC Magic、HTC Desireで発生します。 AMRオーディオファイルは、SonyEricsson xperia x10 miniで記録され、インターネットからダウンロードされました。MediaPlayer.setDataSourceは... AMRオーディオファイル

MediaPlayerのは次のように作成されます。

MediaPlayer player = new MediaPlayer(); 
player.setOnCompletionListener(this); 
player.setOnErrorListener(this); 
player.setAudioStreamType(AudioManager.STREAM_MUSIC); 
try { 
FileInputStream fis = new FileInputStream(filePath); 
player.setDataSource(fis.getFD()); 
} catch (Exception e) { 
... 
} 

任意のアイデア?

答えて

1

特定のsetDataSource呼び出しが異なるデバイスで失敗する可能性があることがわかりました(おそらく、プラットフォーム固有のプレーヤーの特異性のためです)。たとえば、setDataSource(FileDescriptor)を使用して失敗すると、setDataSource(Context, Uri)またはsetDataSource(String)と正常に動作する可能性があります。

他の1つを試してみてください。

+0

私はsetDataSource(String filePath)を使用しようとしましたが、アプリケーションキャッシュディレクトリにオーディオファイルを使用しましたが、MediaPlayerはアクセスできません。ただし、FileDescriptorでは動作しますが、必ずしもそうではありません。 – plugmind

関連する問題