Tiêu đề làm cho âm thanh này đơn giản hơn nhiều so với .. Tôi đang cố gắng phát một ý định sẽ tạm dừng hầu hết các trình phát nhạc.Hệ thống phát lại phương tiện tạm dừng đáng tin cậy-Wide trong Android
Tôi biết tôi có thể sử dụng tạo ra một KeyEvent cho rằng sẽ phát sóng KEYCODE_MEDIA_PLAY_PAUSE với điều này:
long eventTime = SystemClock.uptimeMillis();
Intent downIntent = new Intent(Intent.ACTION_MEDIA_BUTTON, null);
KeyEvent downEvent = new KeyEvent(eventTime, eventTime, KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE, 0);
downIntent.putExtra(Intent.EXTRA_KEY_EVENT, downEvent);
ctx.sendOrderedBroadcast(downIntent, null);
Và đó hoạt động. Nó sẽ tạm dừng trình phát đa phương tiện như tôi muốn, cùng với hầu hết các trình phát nhạc khác hỗ trợ các nút phát/tạm dừng tai nghe. Nhưng vì lý do nào đó, nó chỉ hoạt động một lần với trình phát nhạc cổ. Tôi có thể nhấn nút để gọi điều này và nó sẽ tạm dừng nhạc. Nếu tôi bắt đầu chơi nó một lần nữa, và nhấn nút tạm dừng của tôi một lần nữa, nó không hoạt động. Khi tôi khởi động lại thiết bị, thiết bị sẽ hoạt động lại một lần nữa. Nhưng sau đó, với Pandora, nó hoạt động nhất quán như nó cần.
Tôi nghĩ rằng tôi có thể làm việc xung quanh điều đó và chỉ dừng lại mà không cần sử dụng KeyEvent. Tôi đã thử điều này với AudioManager và một mục đích khác:
AudioManager mAudioManager = (AudioManager) ctx.getSystemService(Context.AUDIO_SERVICE);
if (mAudioManager.isMusicActive()) {
Intent mediaIntent = new Intent("com.android.music.musicservicecommand");
mediaIntent.putExtra("command", "pause");
ctx.sendBroadcast(mediaIntent);
}
Và điều này cũng hoạt động và nó hoạt động nhất quán. Nhưng nó vốn dĩ mong manh, bởi vì bằng cách gửi ý định trực tiếp tới trình phát nhạc Android, đó là trình phát duy nhất mà nó sẽ hoạt động. Không kiểm soát Pandora, Last.FM, v.v. và tôi cần nó để làm việc với hầu hết các máy nghe nhạc.
Tôi không chắc sẽ đi đâu tiếp theo. Tôi không cầu kỳ về loại giải pháp mà tôi được cung cấp miễn là nó hoạt động. Nếu bạn có thể giúp tôi làm cho KeyEvent hoạt động, tuyệt vời, nếu bạn có một số giải pháp hoàn toàn khác, tuyệt vời. Tôi chỉ muốn nó làm việc! Cảm ơn!
Mọi thứ bạn làm ở đây đều "dễ vỡ". Hơn nữa, sẽ có rất nhiều người chơi phương tiện truyền thông sẽ hoàn toàn bỏ qua sự kiện này. Và hoàn toàn có thể là một ngày nào đó hệ điều hành sẽ bắt đầu chặn các sự kiện giả mạo 'ACTION_MEDIA_BUTTON' theo cách chúng chặn các sự kiện giả mạo tương tự khác. Nếu bạn đang viết trình phát media của riêng mình, hãy sử dụng các tính năng lấy nét âm thanh trong 'AudioManager' để lấy tiêu điểm âm thanh. – CommonsWare
Tôi không thực sự viết trình phát đa phương tiện của riêng mình. Tôi biết có rất nhiều ứng dụng đầy đủ chức năng trên Cửa hàng Play sẽ ngừng nhạc sau một khoảng thời gian nhất định, nhưng tôi không đặc biệt hài lòng với bất kỳ ứng dụng nào trong số đó. Tôi chỉ cố gắng viết bài của riêng mình trên một, và tôi cần để có thể tạm dừng hầu hết các ứng dụng âm nhạc. – Geniusdog254