2010-10-04 39 views
22

Tôi đang sử dụng trình phát đa phương tiện.Làm thế nào để tiếp tục mediaplayer?

Tôi có tùy chọn để bắt đầu, dừng và tạm dừng trình phát. Vấn đề tôi gặp phải là tôi không thể tìm thấy tùy chọn để tiếp tục bài hát từ điểm trước đó đã bị tạm dừng.

Bất kỳ trợ giúp nào sẽ thực sự hữu ích.

Trả lời

89

Cảm ơn bạn đã quan tâm nhưng tôi đã có nó bản thân mình

cho tạm dừng Mediaplayer tôi đã sử dụng:

Mediaplayer.pause(); 
length=Mediaplayer.getCurrentPosition(); 

và việc khôi phục các cầu thủ từ vị trí mà nó dừng lại thời gian gần đây được thực hiện bởi:

Mediaplayer.seekTo(length); 
Mediaplayer.start(); 
+0

Cảm ơn bạn, nó hoạt động tốt cho tôi, – Hasmukh

+0

Nó làm việc cho tôi trên Galaxy tab 2 nhưng không hoạt động trên Acer Iconia hoặc Nexus 7. Tôi không biết có gì sai khi bắt đầu chơi từ 0 vị trí nhưng rõ ràng một cái gì đó là. – Mark

+0

điều này không phù hợp với tôi! không có lỗi nhưng âm thanh không tiếp tục! lỗi của tôi là gì? – ConductedClever

23

Tôi nghĩ bạn nên đi qua các tài liệu tìm thấy ở đây: http://developer.android.com/reference/android/media/MediaPlayer.html

Một số trích dẫn từ các tài liệu:

Playback có thể được tạm dừng và dừng lại, và vị trí phát hiện tại có thể được điều chỉnh. Phát lại có thể bị tạm dừng qua tạm dừng(). Khi cuộc gọi tạm dừng() trả về, đối tượng MediaPlayer nhập trạng thái Tạm dừng. Lưu ý rằng việc chuyển đổi từ trạng thái Đã bắt đầu sang trạng thái trạng thái Tạm dừng và ngược lại xảy ra không đồng bộ trong trình phát công cụ . Có thể mất một khoảng thời gian trước khi trạng thái được cập nhật trong các cuộc gọi đến isPlaying() và có thể là một số giây trong trường hợp nội dung được phát trực tuyến .

  • Calling start() để tiếp tục phát lại cho một dừng MediaPlayer đối tượng, và tiếp tục phát lại vị trí cũng giống như nơi nó được dừng lại. Khi cuộc gọi bắt đầu() trả về, đối tượng MediaPlayer bị tạm dừng quay lại trạng thái Đã bắt đầu.
  • Tạm ngừng cuộc gọi() không có hiệu lực đối tượng đối tượng MediaPlayer đã ở trạng thái Tạm dừng .

Hoa giải thích:

States of MediaPlayer

Và trích dẫn từ các phương pháp start() của MediaPlayer

void start công cộng()

Bắt đầu hoặc sơ yếu lý lịch phát lại. Nếu phát lại trước đó đã bị tạm dừng , phát lại sẽ tiếp tục từ vị trí bị tạm dừng. Nếu phát lại đã bị dừng hoặc không bao giờ bắt đầu trước đó, quá trình phát lại sẽ bắt đầu tại số bắt đầu.

Vì vậy, để trả lời câu hỏi của bạn trực tiếp, để tiếp tục phiên bản MediaPlayer bị tạm dừng từ điểm bị tạm dừng sử dụng bắt đầu() lần nữa trên trường hợp đó.

12

Trong câu trả lời được chấp nhận, theo đúng thứ tự là

Mediaplayer.start();

Mediaplayer.seekTo (chiều dài);

+0

Cảm ơn vì điều này !! – ASP

-1

Còn cách này thì sao?

 package com.mycompany.audiodemo; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.media.MediaPlayer; 
import android.view.View; 

public class MainActivity extends AppCompatActivity { 

    MediaPlayer mediaPlayer=null; 
    int playPosition=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mediaPlayer = MediaPlayer.create(this,R.raw.sampleaudio); 
    } 

    public void playAudio(View view){ 

     //mediaPlayer.seekTo(playPosition); 
     mediaPlayer.start(); 

    } 

    public void pauseAudio(View view){ 
     mediaPlayer.pause(); 
     //playPosition = mediaPlayer.getCurrentPosition(); 
    } 
} 
0

Khi sử dụng seekTo Tôi thấy nó thường bắt đầu phát khi bắt đầu bản nhạc rồi tiếp tục phát từ điểm tìm kiếm được đặt.

Điều gì đã hiệu quả đối với tôi đã bị tắt âm lượng và sau đó xoay nó trở lại sau khi currentProgress khớp với tìm kiếm hiện tại (được lưu trữ trên toàn cầu).

0
public class MainActivity extends AppCompatActivity { 

    MediaPlayer mediaPlayer; 
    public void play(View view) { 
      mediaPlayer.start(); 
    } 
    public void pause(View view){ 
      mediaPlayer.pause(); 
    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mediaPlayer= MediaPlayer.create(this,R.raw.someaudio); 
    } 
} 

Thực hiện hai nút để phát và tạm dừng. Và sử dụng mã này. Nó làm việc cho tôi.

Các vấn đề liên quan