我正在嘗試製作通知應用程序,當我點擊該按鈕時,它會在彈出通知時發出嗶聲。當我嘗試播放音頻(Android/Eclipse)時,我收到了我的mediaplayer類的運行時錯誤
當我點擊按鈕時出現通知,但我在運行時出現錯誤,聲音在運行時我認爲「模擬器沒有響應」錯誤。
我得到Android的媒體播放器錯誤:
07-19 19:32:28.846: I/StagefrightPlayer(110): setDataSource('android.resourse://com.example.status/2130968576') 07-19 19:32:28.846: E/MediaPlayer(198): error (1, -2147483648) 07-19 19:32:28.846: W/NotificationService(198): error loading sound for android.resourse://com.example.status/2130968576 07-19 19:32:28.846: W/NotificationService(198): java.io.IOException: Prepare failed.: status=0x1 07-19 19:32:28.846: W/NotificationService(198): at android.media.MediaPlayer.prepare(Native Method) 07-19 19:32:28.846: W/NotificationService(198): at com.android.server.NotificationPlayer$CreationAndCompletionThread.run(NotificationPlayer.java:90) 07-19 19:32:28.976: D/dalvikvm(273): GC_CONCURRENT freed 701K, 55% free 3028K/6599K, external 2434K/2980K, paused 8ms+4ms
這裏是Java代碼,以防萬一:
package com.example.status;
import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.support.v4.app.NavUtils;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
NotificationManager nm = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Notification notify = new Notification(android.R.drawable.stat_notify_more,
"This is important", System.currentTimeMillis());
Context context = MainActivity.this;
CharSequence title = "You have been notified";
CharSequence details = "Continue with what you are doing";
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
notify.setLatestEventInfo(context,title,details,pending);
notify.sound = Uri.parse("android.resourse://com.example.status/" + R.raw.beep);
nm.notify(0, notify);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}