标签: media-player

使用reset()和release()调用时出现Android MediaPlayer错误

我看到的错误是调用reset()和release()永远不会返回,从而使我的应用程序处于无限停止状态.如果我在reset()或release()之前调用stop()并不总是可以重现挂起.

任何与MediaPlayer锁定有任何类似问题的人?有小费吗?我正在研究一个多线程应用程序.

查看正在保留的线程时,DDMS会报告以下内容:

CLASS | 方法| 文件| LINE | NATIVE

android.media.MediaPlayer _release MediaPlayer.java -2 true
android.media.MediaPlayer release MediaPlayer.java 1049 false

android media-player

23
推荐指数
1
解决办法
9652
查看次数

Android:点击TextView从原始资源播放mp3文件

嗨,大家好,我想在点击文字时播放某个mp3文件.例如,我点击了"Nicholas"这个词,应用程序必须播放nicholas.mp3 ...

对不起我的乱码,我是android dev的新手:

package com.example.playword;

import java.io.IOException;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
//import android.os.Handler;
import android.view.View;
//import android.view.View.OnClickListener;
//import android.widget.Button;
import android.widget.TextView;

public class PlayWord extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //final Handler mHandler = new Handler();

        final TextView nicholas = (TextView) findViewById(R.id.nicholas);
        final TextView was = (TextView) findViewById(R.id.was);

        nicholas.setText("Nicholas ");
        was.setText("was ");        

        /*
        Button btn = (Button) (findViewById(R.id.nicholasBtn));

        btn.setOnClickListener(new OnClickListener(){
            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

mp3 android listener media-player

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

流式传输到Android MediaPlayer

我正在尝试HTTP在我的应用程序中编写一个轻量级服务器,以feed动态生成MP3内置数据Android MediaPlayer.我不被允许将我的内容存储在SD card.

我的输入数据基本上是无限长度的.我告诉MediaPlayer它的数据源基本上应该是这样的"http://localhost/myfile.mp3".我有一个简单的服务器设置,等待MediaPlayer发出此请求.但是,MediaPlayer不是很合作.首先,它创建HTTP GET并尝试获取整个文件.如果我们尝试简单地将数据转储到其中,socket那么我们尝试使用HTTPRange标头以块的形式写入数据. MediaPlayer不喜欢这个并且不会继续请求后续的块.

有没有人直接将数据流成为MediaPlayer?我需要实现一个RTSPShoutcast服务器吗?我只是错过了批评HTTP header吗?我应该在这里使用什么策略?

android http stream media-player android-mediaplayer

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

从Assets文件夹设置通知声音

我将声音文件附加在资源文件夹中,以便在通知中播放声音,但我无法播放资源文件夹中的声音.

我有设置页面,用户可以从中设置通知声音,用户也可以播放声音.这部分完成了.我可以使用Media Player播放资源文件夹中的声音.我可以在通知创建时使用相同的逻辑,但是当用户点击通知时可能会发生问题,因为媒体播放器仍在播放声音.

我试过了

notification.sound = Uri.parse("file:///android_asset/Sound/Long/AlarmClock.mp3");
Run Code Online (Sandbox Code Playgroud)

也尝试过这样

notification.sound = Uri.parse("android_asset/Sound/Long/AlarmClock.mp3");
Run Code Online (Sandbox Code Playgroud)

但我的问题仍未解决.

有没有其他方法可以在资产目录中设置通知中的声音?

logcat的

01-10 09:57:01.509: ERROR/PlayerDriver(31): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
01-10 09:57:01.509: ERROR/MediaPlayer(52): error (1, -4)
01-10 09:57:01.519: WARN/NotificationService(52): error loading sound for android_asset/Sound/Long/audio.mp3
01-10 09:57:01.519: WARN/NotificationService(52): java.io.IOException: Prepare failed.: status=0x1
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.MediaPlayer.prepare(Native Method)
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.AsyncPlayer.startSound(AsyncPlayer.java:64)
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.AsyncPlayer.access$200(AsyncPlayer.java:33)
01-10 09:57:01.519: WARN/NotificationService(52):     at android.media.AsyncPlayer$Thread.run(AsyncPlayer.java:99)
01-10 09:57:01.519: WARN/PlayerDriver(31): PVMFInfoErrorHandlingComplete
Run Code Online (Sandbox Code Playgroud)

或任何其他想法?请给我提示.

notifications android media-player android-assets android-resources

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

Android Media Player播放/暂停按钮

在我的项目中,我使用以下代码在Android媒体播放器中播放音乐文件

MediaPlayer mPlayer = MediaPlayer.create(MyActivity.this, R.raw.myfile);
mPlayer.start();
Run Code Online (Sandbox Code Playgroud)

以上是在播放按钮的onclick编码.我想通过再次点击相同的按钮来暂停播放.我的单个按钮用于播放/暂停.我该怎么做

android media-player

22
推荐指数
3
解决办法
8万
查看次数

Android Media Player:开始调用状态4错误(-38,0)

这是用于从其他类动态获取文件名(.mp3)的代码,因为我的assets文件夹中有很多mp3文件:

playAudioButton.setOnClickListener(new OnClickListener() {


            @Override
            public void onClick(View v) 
            {
                FileName audio=new FileName();
                String audioName=audio.getAudioName(count).toString();
                if(audioName=="NO Audio")
                {

                    Toast.makeText(getApplicationContext(), "No Audio for this page", Toast.LENGTH_SHORT).show();

                }
                else
                {

                    try {
                        afd=getAssets().openFd(audioName + ".mp3");
                        mp = new MediaPlayer();
                        mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
                        mp.prepareAsync();
                        mp.start();

                    } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IllegalStateException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }




            }
        });


    }
Run Code Online (Sandbox Code Playgroud)

Log Cat: …

android media-player android-assets android-asynctask

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

MediaController与MediaPlayer

我想要媒体控制,如播放/暂停我正在我的应用程序中播放的流媒体音频.我正在使用MediaPlayer来播放和播放音频.

有人可以提供有关如何将MediaController与MediaPlayer一起使用的代码段吗?

谢谢克里斯

android controller media-player

21
推荐指数
2
解决办法
10万
查看次数

音频流缓冲

我需要播放实时音频流,实际上它是无线电.问题是我还需要管理20分钟的流量缓冲区.据我所知,用android实现起来并不容易.

首先我检查了MediaPlayer,但它没有提供任何缓冲区管理方法.实际上你甚至无法直接设置缓冲区大小.

其次,我尝试使用本地文件管理缓冲区:逐步将流下载到临时文件并切换它们.但是当您想切换到以下文件(在MediaPlayer中更改数据源)时,音频不会连续播放.你可以听到短暂的中断.

最后一个想法是使用流代理.通常它用于在8以下的Android版本中播放流.在流代理中,您创建ServerSocket,从音频流中读取并写入播放器.所以实际上我可以在那里管理缓冲.我可以缓存流并写入MediaPlayer,无论我想要什么.但.它不适用于Android 8.

我得到异常:通过对等java.net.SocketException重置连接:由peer重置连接.MediaPlayer 8不想从套接字读取数据.

因此,我有两个问题:1)实现流缓冲的其他方法是什么?2)如何为Android 8改编StreamProxy?

任何想法都表示赞赏.

谢谢

proxy android stream buffering media-player

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

没有声音来自Android模拟器

我运行了我的应用程序,我无法在Android模拟器上运行声音.我在EclipseAVD Manager中检查并启用了音频播放布尔值.我还进入了Android模拟器中的声音选项并将其放置(放置时没有声音).我选中了一个框,表示所有选择都会产生噪音(仍然没有声音).

我的应用程序使用MediaPlayer该类,我正在运行win7 x64,如果它与它有任何关系.

感谢帮助.

android media-player android-emulator

21
推荐指数
5
解决办法
5万
查看次数

Android SeekBar控制MediaPlayer进度

我有一个SeekBar,它显示正确的MediaPlayer进度.但是,我遇到了麻烦 - 如果我在某处找到滚动框,它只会返回播放音频文件的位置.

public class EntityPageActivity extends Activity implements Runnable, OnClickListener, OnSeekBarChangeListener{
    private SeekBar seekBar;
    private Button startMedia;
    private Button pauseMedia;
    private MediaPlayer mp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.entity_page);             

        AudioControl();         

    }

    public void AudioControl(){
        seekBar = (SeekBar) findViewById(R.id.seekBar);
        startMedia = (Button) findViewById(R.id.play);
        pauseMedia = (Button) findViewById(R.id.pause);
        startMedia.setOnClickListener(this);
        pauseMedia.setOnClickListener(this); 
    }

    public void run() {
        int currentPosition= 0;
        int total = mp.getDuration();
        while (mp!=null && currentPosition<total) {
            try {
                Thread.sleep(1000);
                currentPosition= mp.getCurrentPosition();
            } catch (InterruptedException …
Run Code Online (Sandbox Code Playgroud)

android seek seekbar media-player

21
推荐指数
3
解决办法
4万
查看次数