gpt4 book ai didi

android - MediaPlayer 音频流在 Galaxy Tab 上失败

转载 作者:太空狗 更新时间:2023-10-29 12:57:19 30 4
gpt4 key购买 nike

我在 Galaxy Tab 上播放流式*音频时遇到一些问题(适用于 HTC Desire HD 和 Nexus One)。当我创建 MediaPlayer 对象时,它会产生如下错误:

02-09 02:21:39.088: VERBOSE/MediaPlayer-JNI(9325): native_setup
02-09 02:21:39.088: VERBOSE/MediaPlayer(9325): constructor
02-09 02:21:39.088: VERBOSE/MediaPlayer(9325): setListener
02-09 02:21:39.092: INFO/MediaPlayer(9325): uri is:http://147.83.39.86:3200/osgi/files/TTS/1297185775715.ogg
02-09 02:21:39.092: INFO/MediaPlayer(9325): path is null
02-09 02:21:39.092: DEBUG/MediaPlayer(9325): Couldn't open file on client side, trying server side
02-09 02:21:39.092: VERBOSE/MediaPlayer-JNI(9325): setDataSource: path http://147.83.39.86:3200/osgi/files/TTS/1297185775715.ogg
02-09 02:21:39.092: VERBOSE/MediaPlayer(9325): setDataSource(http://147.83.39.86:3200/osgi/files/TTS/1297185775715.ogg)
02-09 02:21:39.092: ERROR/MediaPlayerService(2392): Failed to create player object
02-09 02:21:39.092: ERROR/MediaPlayer(9325): Unable to to create media player
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): create failed:
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): java.io.IOException: setDataSource failed.: status=0x80000000
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): at android.media.MediaPlayer.setDataSource(Native Method)
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:745)
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): at android.media.MediaPlayer.setDataSource(MediaPlayer.java:675)
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): at android.media.MediaPlayer.create(MediaPlayer.java:611)
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): at android.media.MediaPlayer.create(MediaPlayer.java:592)
02-09 02:21:39.104: DEBUG/MediaPlayer(9325): at com.vodafone.inredis.movil.interfazweb.InredisWebViewClient.shouldOverrideUrlLoading(InredisWebViewClient.java:37)

这就是我创建 MediaPlayer 对象的方式,没什么奇怪的:

Uri tempPath = Uri.parse(url);
player = MediaPlayer.create(interfazWeb, tempPath);
if (player != null){
player.start();
} else {
Log.e(TAG, "No se puede abrir el audio:" + url);
}
return true;

为了提供更多信息,我可以说我测试了通过的网址,我可以使用 native 浏览器下载并正常播放。显然我可以用我的桌面浏览器播放它。

有人在使用上述设备时遇到过这个问题吗?

提前致谢。

######## 编辑 ##############

我还没有解决这个问题,但我一直在研究,现在我在一个单独的线程中下载文件,将它保存到一个临时文件并用 MediaPlayer 打开>。它会产生另一种错误,我怀疑文件夹和权限,但我还不确定。

所以现在我有了这些临时文件,我可以用 galaxy 的本地播放器播放,但不能用我在代码中创建的播放器播放,还有一段不同的日志跟踪,它没有给我任何提示。

02-10 01:36:36.945: VERBOSE/MediaPlayer-JNI(8371): native_setup
02-10 01:36:36.945: VERBOSE/MediaPlayer(8371): constructor
02-10 01:36:36.945: VERBOSE/MediaPlayer(8371): setListener
02-10 01:36:36.948: VERBOSE/MediaPlayer-JNI(8371): setDataSource: path /sdcard/audioTmp360988.ogg
02-10 01:36:36.948: VERBOSE/MediaPlayer(8371): setDataSource(/sdcard/audioTmp360988.ogg)
02-10 01:36:36.952: VERBOSE/MediaPlayer(8371): prepare
02-10 01:36:36.952: ERROR/MediaPlayerService(2394): Client::notify In
02-10 01:36:36.952: ERROR/MediaPlayer(8371): message received msg=1, ext1=0, ext2=0
02-10 01:36:36.952: VERBOSE/MediaPlayer(8371): prepared
02-10 01:36:36.952: VERBOSE/MediaPlayer(8371): signal application thread
02-10 01:36:36.952: ERROR/MediaPlayer(8371): callback application
02-10 01:36:36.952: ERROR/MediaPlayer(8371): back from callback
02-10 01:36:36.952: VERBOSE/MediaPlayer(8371): prepare complete - status=0
02-10 01:36:41.437: VERBOSE/MediaPlayer-JNI(8371): native_finalize
02-10 01:36:41.437: VERBOSE/MediaPlayer-JNI(8371): release
02-10 01:36:41.437: VERBOSE/MediaPlayer(8371): setListener
02-10 01:36:41.437: VERBOSE/MediaPlayer(8371): disconnect
02-10 01:36:41.437: VERBOSE/MediaPlayer(8371): destructor
02-10 01:36:41.437: VERBOSE/MediaPlayer(8371): disconnect

来吧,我不能是唯一一个!

最佳答案

使用 MediaPlayer 的 WAV 和 OGG 音频流在 Samsung Galaxy TAB(带有 FroYo)上不起作用。我一直在测试,我使用了API Demo(8),具体来说是/Demos/src/com/example/android/apis/media/MediaPlayerDemo_Audio.java中的这段代码:

    private void playAudio(Integer media) {
try {
switch (media) {
case LOCAL_AUDIO:
/**
* TODO: Set the path variable to a local audio file path.
*/
// path = "http://upload.wikimedia.org/wikipedia/commons/a/a9/Tromboon-sample.ogg";
// path = "http://www.robtowns.com/music/blind_willie.mp3";
path = "http://www.nch.com.au/acm/8k16bitpcm.wav";
if (path == "") {
// Tell the user to provide an audio file URL.
Toast
.makeText(
MediaPlayerDemo_Audio.this,
"Please edit MediaPlayer_Audio Activity, "
+ "and set the path variable to your audio file path."
+ " Your audio file must be stored on sdcard.",
Toast.LENGTH_LONG).show();

}
mMediaPlayer = new MediaPlayer();
Uri tempUri = Uri.parse(path);
try {
mMediaPlayer.setDataSource(this, tempUri);
}
catch (IllegalStateException e) {
Log.d(TAG, "IllegalStateException: " + e.getMessage());
}
catch (IOException e) {
Log.d(TAG, "IOException: " + e.getMessage());
}
catch (IllegalArgumentException e) {
Log.d(TAG, "IllegalArgumentException: " + e.getMessage());
}
catch (SecurityException e) {
Log.d(TAG, "SecurityException: " + e.getMessage());
}
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.prepare();
mMediaPlayer.start();
break;
case RESOURCES_AUDIO:
/**
* TODO: Upload a audio file to res/raw folder and provide
* its resid in MediaPlayer.create() method.
*/
mMediaPlayer = MediaPlayer.create(this, R.raw.test_cbr);
mMediaPlayer.start();

}
tx.setText("Playing audio...");

} catch (Exception e) {
Log.e(TAG, "error: " + e.getMessage(), e);
}

}

我只是更改了定义要播放的文件路径的那 3 行,以及项目中的任何其他内容。好吧,只有 Mp3 文件可以播放,WAV 和 OGG 都会产生与我的问题类似的异常。

还有人想试试吗?我应该假设存在错误吗?

关于android - MediaPlayer 音频流在 Galaxy Tab 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938137/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com