简体   繁体   English

尝试在Android Wear设备上使用MediaPlayer()类时出错

[英]Error when trying to use the MediaPlayer() class on an android wear device

package com.jtunes.josh.watchtunes;

import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.wearable.view.WatchViewStub;
import android.view.View;
import android.widget.TextView;

public class playMedia extends Activity {

    private TextView mTextView;
    public MediaPlayer myMediaPlayer;
    MediaPlayer mediaPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_play_media);

    }

    //Play song
    public void playButtonClicked(View view) {
        Context context = this;
        mediaPlayer = new MediaPlayer();

        System.out.println("Play button clicked" + mediaPlayer.toString());
        try{
            MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.dre);
            mediaPlayer.start();
            System.out.println("Song started");
        }
        catch (Exception e){
            System.out.println("Error: " + e);
        }

    }
}

The same code works on a normal android emulator/device but when I attempt to do audio playback on android wear I get the following errors. 相同的代码可在正常的Android模拟器/设备上工作,但是当我尝试在Android Wear上进行音频播放时,出现以下错误。 Is it even possible to use MediaPlayer() on wear? 甚至可以在磨损时使用MediaPlayer()吗? Any ways around this? 有什么办法解决吗?

07-27 19:12:45.374    7815-7830/com.jtunes.josh.watchtunes E/MediaPlayer﹕ error (1, -2147483648)
07-27 19:12:45.375    7815-7815/com.jtunes.josh.watchtunes D/MediaPlayer﹕ create failed:
    java.io.IOException: Prepare failed.: status=0x1
            at android.media.MediaPlayer._prepare(Native Method)
            at android.media.MediaPlayer.prepare(MediaPlayer.java:1135)
            at android.media.MediaPlayer.create(MediaPlayer.java:933)
            at android.media.MediaPlayer.create(MediaPlayer.java:904)
            at com.jtunes.josh.watchtunes.playMedia.playButtonClicked(playMedia.java:31)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at android.view.View$1.onClick(View.java:4015)
            at android.view.View.performClick(View.java:4780)
            at android.view.View$PerformClick.run(View.java:19866)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5254)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
07-27 19:12:45.375    7815-7815/com.jtunes.josh.watchtunes I/System.out﹕ Error: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference

Maybe try that: 也许尝试:

public class playMedia extends Activity {

private TextView mTextView;
public MediaPlayer myMediaPlayer;
MediaPlayer mediaPlayer;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_play_media);

}

//Play song
public void playButtonClicked(View view) {
    Context context = this;
    mediaPlayer = new MediaPlayer();

    System.out.println("Play button clicked" + mediaPlayer.toString());
    try{
        mediaPlayer = MediaPlayer.create(context, R.raw.dre);
        mediaPlayer.start();
        System.out.println("Song started");
    }
    catch (Exception e){
        System.out.println("Error: " + e);
    }

}

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM