标签: media-player

在android上发送媒体动作

我正在寻找一种方法将全球媒体动作(播放/暂停,下一个,上一个)发送到手机,就像它可以通过蓝牙配对的无线电/扬声器一样.

我找到了MediaController类(http://developer.android.com/reference/android/widget/MediaController.html),但似乎更多的是实现这些操作的接收器,我正在寻找发送者.

但是,我无法在android文档的任何地方找到任何引用...

有人已经偶然发现了这个吗?

java controls android media-player

21
推荐指数
1
解决办法
1118
查看次数

如何从网址播放流媒体音频/视频?

我是Android新手.我使用的是android os 2.2.我正在尝试从网址播放流媒体音频和视频.我不知道该怎么做.在googling 3天后,我开始知道我必须使用mediaPlayer和MediaController类.

我曾在互联网上使用不同的不同组合代码,但没有成功.

任何人都可以指导我如何处理流式音频/视频播放.如果我们使用MediaPlayer或Controller类,UI会怎样?在布局的xml文件中有没有相关的东西.

如果没有,那么请告诉我可能是什么代码.

请帮我.

streaming android media-player

20
推荐指数
2
解决办法
6万
查看次数

MediaPlayer中的android ANR重置

我有一个简单的活动,通过VideoView播放视频

public class AVideo extends Activity {
private VideoView mVideoView;
private MediaController mc;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.a_video);
    Bundle extras = getIntent().getExtras();
    Uri path = Uri.parse(extras.getString("videoURI"));
    mVideoView = (VideoView) findViewById(R.id.video);
    mVideoView.setVideoURI(path);
    mc = new MediaController(this);
    mVideoView.setMediaController(mc);
}

@Override
protected void onResume() {
    super.onResume();
    mVideoView.start();
    mc.show();
}
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下,当用户按下按钮时,在此活动中,在视频开始播放之前,他有ANR.这是我的踪迹:

DALVIK THREADS:
"main" prio=5 tid=3 NATIVE
| group="main" sCount=1 dsCount=0 s=N obj=0x4001b268 self=0xbd00
| sysTid=423 nice=0 sched=0/0 cgrp=default handle=-1344001384
at android.media.MediaPlayer._reset(Native Method)
at android.media.MediaPlayer.reset(MediaPlayer.java:1028)
at android.widget.VideoView.release(VideoView.java:476)
at android.widget.VideoView.access$2100(VideoView.java:49)
at …
Run Code Online (Sandbox Code Playgroud)

android media-player

20
推荐指数
1
解决办法
4736
查看次数

Android MediaPlayer - 有时即使播放音频也没有播放视频

我正在开发一个Android应用程序,我正在使用Android SDK MediaPlayer在我的应用程序中播放一些视频.当我在我的应用程序中播放视频时,大约五分之一,视频播放没有视频.这不是一个简单的编码错误,因为大多数时候视频播放都很完美.

我认为我的代码中的竞争条件导致了这个错误.但是,我添加了许多调试语句,当视频无法播放时,所有内容似乎都已正确设置.

我已经扫描了网络,并试图寻找解决方案,但没有一个是足够的(见下文).

有没有人遇到过这类问题?如果是这样,你做了什么?

类似问题:

MediaPlayer视频未播放

Android媒体播放器显示音频但没有视频

安卓视频,听到声音,但没有视频

更多细节:

  • 我在两部手机上遇到过这个漏洞.在三星充电视频播放80%的时间和20%的时间有音频,但没有视频.在T-Mobile Comet上,它更糟糕; 视频只播放约10%的时间.
  • 这不是文件的问题,我尝试了各种视频文件和编解码器,并得到了同样的问题.
  • 这对存储介质来说不是问题.我已经尝试播放存储在内部存储和SD卡上的视频,但两者都没有区别.我甚至尝试在播放之前阅读一些文件,希望系统会缓存它,但这似乎也没有帮助.

更新:

我一直在调试这个并查看logcat.我发现当视频工作时,logcat中出现如下内容:

09-28 00:09:03.651: VERBOSE/PVPlayer(10875): setVideoSurface(0x65638)
Run Code Online (Sandbox Code Playgroud)

但是当视频没有播放时,它看起来像是一个空条目:

09-28 00:03:35.284: VERBOSE/PVPlayer(10875): setVideoSurface(0x0)
Run Code Online (Sandbox Code Playgroud)

更新2:

当视频无法播放时,函数MediaPlayer.OnInfoListener带参数 what==MEDIA_ERROR_UNKNOWN(0x1)extra==35.我查看了Android代码库,试图确定未知错误35的含义.我遇到了文件pv_player_interface.h,它表明错误代码35对应于一个名为a的东西PVMFInfoTrackDisable.我用谷歌搜索了那个把我带到一个叫做文件的文章 pvmf_return_codes.pdf.该文件给了我以下难以理解的解释:

4.34.PVMFInfoTrackDisable

禁用特定轨道的通知.这个是基于每个轨道.对于未压缩的音频/视频格式,在选择内容中可用的轨道的过程中,如果解码器不支持轨道,则发送PVMFInfoTrackDisable事件.如有必要,该活动将在每个赛道发送一次.

我觉得我已经走了很长的路,但我没有找到答案......仍然在调查.

java video android media-player

20
推荐指数
1
解决办法
1万
查看次数

android媒体播放器 - 如何禁用范围请求?(在Nexus 7上损坏的音频流)

我有一个音频流应用程序,它运行本地代理服务器.本地代理服务器与互联网流媒体源建立http连接,在本地获取和缓冲流数据.然后,在应用程序内部,我使用MediaPlayer连接到本地代理服务器,使用该方法

mediaPlayer.setDataSource(...); // the url of the local proxy server
Run Code Online (Sandbox Code Playgroud)

一切都很好(有很多Android设备和不同的操作系统版本 - 1.5 ... 4.0),直到Nexus 7发布.

在Nexus 7中,媒体播放器拒绝从本地代理服务器播放源.

当我查看日志时,似乎MediaPlayer在内部使用范围请求.我的本地代理服务器无法处理.它返回HTTP/1.0 200 OK和数据.但是,媒体播放器并不喜欢这样并抛出异常:

Caused by: libcore.io.ErrnoException
?:??: W/?(?): [ 07-18 00:08:35.333  4962: 5149 E/radiobee ]
?:??: W/?(?): : sendto failed: ECONNRESET (Connection reset by peer)
?:??: W/?(?):   at libcore.io.Posix.sendtoBytes(Native Method)
?:??: W/?(?):   at libcore.io.Posix.sendto(Posix.java:146)
?:??: W/?(?):   at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:
?:??: W/?(?):   at libcore.io.IoBridge.sendto(IoBridge.java:473)
We requested a content range, but server didn't support that. (responded with 200)
Run Code Online (Sandbox Code Playgroud)

根据http规范,如果服务器以HTTP/1.0而不是1.1响应,则客户端不得发出范围请求(1.0不支持该规范),

此外,如果服务器不支持范围请求,它应该没问题,如果它以200 OK响应(这就是我正在做的事情),但是Nexus 7上的MediaPlayer实现并不喜欢.

我看了一下这个帖子: HTTP:当Range不受支持时,我应该如何响应"Range:bytes ="? …

streaming android media-player

20
推荐指数
3
解决办法
8554
查看次数

Android MediaPlayer错误代码?

我正在努力获得一个直播的无线电流来处理android.我正在使用MediaPlayer该类,只是设置URL并播放它.它在大多数情况下效果很好,但在5-30分钟后它不可避免地会死亡.在2.1手机(更具体地说是英雄)上我得到了这个日志输出

W/MediaPlayer( 7919): info/warning (1, 26)
I/MediaPlayer( 7919): Info (1,26)
I/MediaStreamService( 7919): mPlayer info code:1  extra:26
E/MediaPlayer( 7919): error (1, -11)
E/MediaPlayer( 7919): Error (1,-11)
Run Code Online (Sandbox Code Playgroud)

MediaStreamService包含MediaPlayer输出的我的服务来自哪里OnInfoListener

在2.2手机上我没有得到OnInfoListener回调,流就死了.但我确实在logcat中看到了这一点

E/HTTPStream( 1020): recv failed, errno = 11 (Try again)
E/HTTPDataSource( 1020): retrying connection failed
Run Code Online (Sandbox Code Playgroud)

似乎在我的1.6手机上完美无瑕地工作,尽管垃圾邮件一直是垃圾邮件

E/PlayerDriver( 82): Invalid percentage value <big growing number>
Run Code Online (Sandbox Code Playgroud)

我的问题是,错误代码(1,26)是什么意思?是什么导致我的mediaPlayer崩溃?2.1问题是否与2.2问题有关?谢谢,内森

编辑:我正在寻找源代码OnInfoListener ,发现public static final int MEDIA_INFO_UNKNOWN = 1; 我不确定它究竟是什么意思,也无法找到这些额外内容的保存位置.任何关于媒体信息未知的含义的见解?或者这26代表什么将非常感激.

android media-player

19
推荐指数
1
解决办法
4万
查看次数

Android:Mediaplayer:如何使用SurfaceView或mediaplayer播放正确大小的视频

我正在使用MediaPlayer和SurfaceView播放本地视频文件.SurfaceView是活动中唯一的控件,而我的视频文件是QVGA或其他.问题是视频正在变得拉长,我如何以原始大小播放视频,例如qvga,其余区域为黑色.

从迭代开始,

当我在XML中强制设置Surfaceview的layout_height/width时,视频显示正常. surface_holder.setFixedSize(w,h)没有效果,也没有mp.setdisplay().

请指导一下.

UPDATE

XML flie

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
            android:id="@+id/home_container"  
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent">

<SurfaceView 
        android:id="@+id/surface" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:paddingTop="10dip" />
</framelayout>
Run Code Online (Sandbox Code Playgroud)

MediaPlayer用法如下所示

http://davanum.wordpress.com/2007/12/29/android-videomusic-player-sample-from-local-disk-as-well-as-remote-urls/

提前致谢.

android media-player

19
推荐指数
3
解决办法
6万
查看次数

调用MediaPlayer.reset()的IllegalStateException

Android的文档MediaPlayer显示该reset()调用没有无效状态:http://developer.android.com/reference/android/media/MediaPlayer.html#Valid_and_Invalid_States(无效状态列为{}或"无" ").

但是,我看到IllegalStateException在调用时抛出reset():

java.lang.IllegalStateException
at android.media.MediaPlayer._reset(Native Method)
at android.media.MediaPlayer.reset(MediaPlayer.java:1061)
at com.example.android.player.AsyncPlayer$AsyncHandler.handleMessage(AsyncPlayer.java:654)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.os.HandlerThread.run(HandlerThread.java:60)
Run Code Online (Sandbox Code Playgroud)

文档不正确吗?

android media-player

19
推荐指数
2
解决办法
1万
查看次数

Android Media Player:从文件下载到文件和流

我正在使用Android MediaPlayer来播放同时从互联网上下载的MP3文件DownloadManager.我知道MediaPlayer直接流的功能,但我不想使用它:

通过下载和同时从文件流式传输获得的明显优势就是这样,文件被存储并且之后可在本地获得.

  • 这原则上起作用 - MediaPlayer即使没有完全下载也会开始播放文件.(顺便说一下,我的问题不在于我无法MediaPlayer上场.)
  • 问题是,当MediaPlayer它开始播放时到达下载状态的位置时,它会停止并调用onCompletion.(澄清:假设我开始玩时,我们假设该文件下载了12%.当玩家以12%的比例到达该位置时,它会停止.)
  • 快速注释:OnBufferingUpdateListener.onBufferingUpdate(...)当MP3文件通过附加内容添加时,不会调用DownloadManager.

所以问题是:如何同时将音频文件下载到文件系统并播放?(Android 4+就足够了,如果这有所不同.)

audio streaming android download media-player

19
推荐指数
2
解决办法
8936
查看次数

Android Media Player在后台播放,但在应用程序被杀时不会停止

我是Android新手,所以我遇到了问题.在Android中,我想在我的音乐播放器启动后立即播放背景音乐,并且即使活动从一个变为另一个,它也会继续播放.我试过这段代码:

MediaPlayer music = MediaPlayer.create(MainActivity.this, R.drawable.bgscore);
music.start();
Run Code Online (Sandbox Code Playgroud)

但是,当用户关闭应用程序时声音应该停止,但事实并非如此.我怎样才能做到这一点?

audio android media-player android-activity

19
推荐指数
2
解决办法
1万
查看次数