【问题标题】:Android streaming .wav audio file from server is not working来自服务器的 Android 流式传输 .wav 音频文件不起作用
【发布时间】:2017-10-02 09:33:31
【问题描述】:

我一直在尝试在后台从服务器流式传输 .wav 文件。它适用于 .mp3 音频文件。但是当我尝试播放 .wav 文件时,它没有播放。我将音频播放器实现为服务。以下是代码

import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;


public class SoundService extends Service implements MediaPlayer.OnPreparedListener {

private static final String TAG = "MyService";
String url;
MediaPlayer mp;

public IBinder onBind(Intent intent) {

    Log.i("OnBind", "Inside OnBind");
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onCreate() {
    Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show();
    Log.i(TAG, "onCreate");

    mp = new MediaPlayer();
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
}

@Override
public void onDestroy() {
    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
    Log.d("Stopping", "onDestroy");

    mp.stop();
}

@Override
public int onStartCommand(Intent intent, int flags, int startid) {
    Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
    Log.i("Starting", "onStart");

    url = intent.getExtras().getString("url");
    Log.i("Starting2", "onStart2");
    try {
        mp.reset();
        Log.i("URLIS",""+url);
        mp.setDataSource(url);
        Log.i("Datasource", "datasource");
        mp.setOnPreparedListener(this);
        Log.i("preparedlistener", "PreparedListener");
        mp.prepareAsync();
        Log.i("prepareasync", "prepareAsync");
    } catch(Exception e){}
    return START_STICKY;
}

@Override
public void onPrepared(MediaPlayer mediaPlayer) {
    Log.i("onprepared", "insideprepared");
    mediaPlayer.start();
}

}

从mainActivity中的onactivityresult调用服务,传入intent中音频文件的url。

public void onResponse(String response) {

            Log.i("Myresponse",""+response);

            Intent i = new Intent(MainActivity.this, SoundService.class);
            i.putExtra("url",response);
            startService(i);
            Log.i("Myresponse",""+response);
            Toast.makeText(MainActivity.this, ""+response, Toast.LENGTH_SHORT).show();

        }

流式传输.wav文件时我的日志猫如下

10-02 15:00:03.527 27677-27734/com.example.gkrish.momdadme E/MediaPlayer: error (1, -2147483648)
10-02 15:00:03.534 27677-27677/com.example.gkrish.momdadme E/MediaPlayer: Error (1,-2147483648)

【问题讨论】:

    标签: android service android-mediaplayer wav


    【解决方案1】:

    你写的代码是正确的,很可能是因为响应

    【讨论】:

    • 问题解决了,是服务器出错了。
    猜你喜欢
    • 2012-01-24
    • 1970-01-01
    • 2013-02-27
    • 2014-11-15
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多