Articles of android mediaplayer

MediaPlayer.isplaying()方法中的java.lang.IllegalStateException

public static MediaPlayer mp=null; public static void playGeneric(int name, final ImageButton button,final ImageButton pervious,Context context) { button.setEnabled(false); button.setClickable(false); pervious.setEnabled(false); pervious.setClickable(false); try{ if(mp != null && mp.isPlaying()) { mp.stop(); mp.release(); mp = null; mp=MediaPlayer.create(context, name); mp.start(); } else { mp = MediaPlayer.create(context, name); mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer arg0) { //mp.prepare(); mp.start(); } }); […]

如何在Android中定位变化的同时连续播放audio?

我是Android新手,必须创buildMediaPlayer来播放audio音乐。 当开始我的活动歌曲开始播放。 但是,当我在仿真器屏幕上更改方向时, MediaPlayer被重新初始化,而另一个audio将开始播放。 我怎样才能避免它? 这是我的代码: public class Audio_Activity extends Activity { MediaPlayer mp = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(isLaunched) { setContentView(R.layout.audio); } SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); length = settings.getInt("TheOffset", 0); init(); prefs = PreferenceManager.getDefaultSharedPreferences(this); mp = MediaPlayer.create(getApplicationContext(), R.raw.subhanallah); playMusic(); mp.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer arg0) { // TODO […]

如何在MediaPlayer setDataSource中包含http头文件?

我传递一个URI到MediaPlayer对象的setDataSource方法 。 我的目标是小于14的api版本,所以相信我不能使用允许包含标题的新方法。 如何在MediaPlayer请求中包含头文件(特别是身份validation头文件)并仍支持旧版Android设备? 我的代码如下所示: mediaPlayer.setDataSource(url); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.prepareAsync();

MediaPlayer错误(1,-1004)又名MEDIA_ERROR_IO尝试在三星S3上传输音乐

注意:当我发布这个问题时,我并没有在我工作的公司工作,因此,即使有一些很好的答案可能会出现,我也不会进行testing,因为我没有理由(除了促进社区;这可能导致我有一天这样做) 。 但是,如果这个问题的一些答案是由其他许多社区成员提出的,那么我可以select这个答案作为我原来发布这个问题多年后所经历的问题的正确答案。 同时,我希望有些答案可能会帮助你们中的一些人也遇到这个问题。 耶为堆栈溢出! 我们的应用程序必须通过在线来源播放音乐(我无权公开此来源)。 为什么需要花费2分钟才能在S3上开始stream式传输? 由于MEDIA_ERROR_UNKOWN ,我已经能够发现Media Player对象进入错误状态 – 很好。 帮不了我很多。 所以在onError中用OnErrorListener处理这个,我重置了Media Player对象,然后调用startPlaying,其余部分 – 设置数据源等等。 成员: private ProgressBar playSeekBar; private ImageView ivPlay; private ImageView ivPause; private ImageView ivBuffer; private MediaPlayer mPlayer; private ImageView ivInfo; private AudioManager audio; 初始化媒体播放器(和展示器 – 这不是问题的目的) private void initialMediaPlayerAndVisualizer() { Log.d(TAG, "Initial Media Player and Visualizer"); playSeekBar = (ProgressBar) […]

如何循环声音在Android没有差距?

我想在android中无间隙地循环播放声音。 我尝试使用代码mediaplayer.setLooping(true)来循环播放声音,但是当第一个声音结束并且下一个声音开始时,总会有一些暂停。

如何获取Android MediaPlayer中的当前音量/幅度?

我正在开发一款既能录制audio文件又能录制文件的应用程序。 UI具有一个EQ组件,该组件可以相对于当前logging的幅度进行animation处理。 我有通过MediaRecorder.getMaxAmplitude()方法的animation工作,但无法find任何方法与MediaPlayer做到这一点。 我知道这一定是可能的,因为音乐可视化dynamic壁纸默认情况下执行此function,但我不能看到它通过AOSP梳理时拉动这些信息的任何方式。 有人知道如何做这个工作吗?

Android MediaPlayer / VideoView错误(1,-2147483648)

我一直在从文件path设置VideoView的video不一致的经验。 VideoView myVideoView = findViewById(R.id.videoView); … myVideoView.setVideoPath(videoFilename); … myVideoView.start(); videoFilename是我的caching目录中video的绝对path: String videoFilename = new File(context.getCacheDir(), "myawesomevideo.mp4").getAbsolutePath(); 在Android SDK> = 16(果冻豆),这工作得很好,我真棒video播放。 在Android 4.0.4(SDK = 15)中,当调用myVideoView.start()时,MediaPlayer中断。 错误是永远无益的: error (1, -2147483648) 我在这里错过了什么? 直接从我的软件包资源(res / raw)或互联网( http://something.com/myawesomeinternetvideo.mp4 )加载文件,但我不知道如何从我的caching目录中读取文件!

播放默认的Androidbutton声音,点击onTouch()方法

在我的Android应用程序中,我有一些button,应该与onTouch()方法一起工作,当然我需要改变button的文本,当手指在ACTION_DOWN位置。 但是这个button应该可以播放button点击的默认 android声音(如onClick()方法)。 我在哪里可以find这样的声音? 我认为,它必须在SDK中,但我怎么能find它? 哪种方法更适合这种操作? 我正在使用MediaPlayer。 清单: public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: addTextShadow(v); Log.v(LOG_TAG, "ACTION_DOWN"); break; case MotionEvent.ACTION_MOVE: clearTextShadow(v); isMoved = true; Log.v(LOG_TAG, "ACTION_MOVE"); break; case MotionEvent.ACTION_UP: Log.v(LOG_TAG, "ACTION_UP"); if (!isMoved) { clearTextShadow(v); if (v.getId() == R.id.btn_new) { Log.v(LOG_TAG, "New pressed"); playSound(); //MY […]

rtspvideo性能作为浏览器触发的意图与我的应用程序触发的意图

您好我正在创build一个应用程序,将播放livestream.com的rtsp直播频道。 我在我的应用程序中使用intent启动播放器,如下所示: iPlayer = new Intent(Intent.ACTION_VIEW); //iPlayer.setType("video/*"); iPlayer.setData(Uri.parse(videoUrl)); startActivity(iPlayer); 当媒体播放器通过我的应用程序启动时,video性能非常差。 它停止每隔几秒缓冲,播放几秒钟,然后暂停缓冲。 另一方面,如果我打开Android浏览器中的url(例如http://m.livestream.com/abcalbania ),它在该页面上有一个video标签,并触发video播放器。 这段时间,video运行非常stream畅。 任何想法为什么这可能发生? 以及如何可以解决这个问题? 我不想按照意图启动浏览器URL。 这是在Android 2.3.4 Atmel cortex A9芯片组上完成的

将数据源设置为MediaPlayer中的原始ID

在MediaPlayer.create方法中,可以使用id到Raw文件,但是如何在setDataSource方法中使用它?