انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
دریافت آدرس فایل صوتی از دیتابس جهت پخش آن

دریافت آدرس فایل صوتی از دیتابس جهت پخش آن

#1
سلام 
دوستان من براي پخش آنلاين mp3 با اين دستور :


کد:
private MediaPlayer mediaPlayer;
private int lengthOfAudio;
private final String URL = "http://server8.mp3quran.net/bu_khtr/001.mp3";
.
.
.
mediaPlayer.setDataSource(URL);
mediaPlayer.prepare();
lengthOfAudio = mediaPlayer.getDuration();
فايل رو از سرور فراخوني و پخش مي کنه

من مجبورم براي هر فايل که مي خوام پخش کنم يه اکتيويتي جديد ايجاد کنم ،

راه حل مناسبتري سراغ داريد ؟

مثلا اين کد رو ببنيد :

کد:
package ir.gilan.android;


کد:
import java.io.IOException;



public class ShowData extends Activity implements OnClickListener, OnTouchListener, OnCompletionListener, OnBufferingUpdateListener{




    Dastan dastan;
    Context c;
    DBAdapter db;
    SharedPreferences sh;
    int size;
    boolean rushan;
    String font;
    Typeface my_font;
    static MediaPlayer mPlayer;
    Button play_button, pause_button;
    TextView text_shown;
    private Button btn_play,btn_pause,btn_stop;
    private SeekBar seekBar;
    private MediaPlayer mediaPlayer;
    private int lengthOfAudio;
    private final String URL = "http://server8.mp3quran.net/bu_khtr/001.mp3";
    private final Handler handler = new Handler();
    private final Runnable r = new Runnable()
    {     
           @Override
           public void run() {
                  updateSeekProgress();                                 
           }
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show_dastan);
        initialize_Controls();
    }
         private void initialize_Controls()
     {
            btn_play = (Button)findViewById(R.id.btn_play);
            btn_play.setOnClickListener(this);
            btn_pause = (Button)findViewById(R.id.btn_pause);
            btn_pause.setOnClickListener(this);
            btn_pause.setEnabled(false);
            btn_stop = (Button)findViewById(R.id.btn_stop);
            btn_stop.setOnClickListener(this);
            btn_stop.setEnabled(false);


            seekBar = (SeekBar)findViewById(R.id.seekBar);
            seekBar.setOnTouchListener(this);


            mediaPlayer = new MediaPlayer();
            mediaPlayer.setOnBufferingUpdateListener(this);
            mediaPlayer.setOnCompletionListener(this);


    
        sh = getSharedPreferences("setting", 0);
        size = sh.getInt("size?", 20);
        rushan = sh.getBoolean("rushan?", true);
        font = sh.getString("font?", "Bnazanin");
        my_font = Typeface.createFromAsset(getAssets(), font + ".ttf");


        c = getBaseContext();
        db = new DBAdapter(c);
        db.open();


        dastan = (Dastan) getIntent().getExtras().get("thisdastan");


        Log.i(DBAdapter.TAG, "dastan gerefte shod: " + dastan.getOnvan());


        TextView name = (TextView) findViewById(R.id.name);


        name.setBackgroundColor(Color.parseColor("#FFDEAD"));
        name.setShadowLayer(1, 0, 0, Color.BLACK);
        name.setText(dastan.getOnvan());


        ImageView ax2 = (ImageView) findViewById(R.id.ax2);


        TextView T2_text = (TextView) findViewById(R.id.T2_text);
        T2_text.setText(dastan.getTell());
        TextView T1_text = (TextView) findViewById(R.id.T1_text);
        T1_text.setText(dastan.getAdres());


        TextView T3_text = (TextView) findViewById(R.id.T3_text);


        TextView T4_text = (TextView) findViewById(R.id.T4_text);
        T2_text.setTextSize(size);
        T2_text.setTypeface(my_font);
        T1_text.setTextSize(size);
        T1_text.setTypeface(my_font);


        if (rushan) {
            getWindow()
                    .addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
            Log.i(DBAdapter.TAG, "nur e safhe rushan mimanad");
        }


        T2_text.setText(dastan.getTell());


        int


        imageResource = c.getResources().getIdentifier(dastan.getAx2(),
                "drawable", c.getPackageName());
        ax2.setImageResource(imageResource);
     }
    

@Override
public void onBufferingUpdate(MediaPlayer mediaPlayer, int percent)
{
       seekBar.setSecondaryProgress(percent);
}


@Override
public void onCompletion(MediaPlayer mp)
{
       btn_play.setEnabled(true);
       btn_pause.setEnabled(false);
       btn_stop.setEnabled(false);
}


@Override
public boolean onTouch(View v, MotionEvent event)
{
       if (mediaPlayer.isPlaying())
       {
              SeekBar tmpSeekBar = (SeekBar)v;
              mediaPlayer.seekTo((lengthOfAudio / 100) * tmpSeekBar.getProgress() );
       }
       return false;
}


@Override
public void onClick(View view)
{


       try
       {                         
              mediaPlayer.setDataSource(URL);
              mediaPlayer.prepare();
              lengthOfAudio = mediaPlayer.getDuration();                   
      
       }
       catch (Exception e)
       {
              //Log.e("Error", e.getMessage());
       }


       switch (view.getId())
       {
       case R.id.btn_play:              
              playAudio();
              break;
       case R.id.btn_pause:
              pauseAudio();
              break;
       case R.id.btn_stop:
              stopAudio();
              break;
       default:
              break;
       }


       updateSeekProgress();
}


private void updateSeekProgress()
{
       if (mediaPlayer.isPlaying())
       {
              seekBar.setProgress((int)(((float)mediaPlayer.getCurrentPosition() / lengthOfAudio) * 100));
              handler.postDelayed(r, 1000);
       }
}


private void stopAudio()
{
       if(mediaPlayer!=null)
       {
              mediaPlayer.stop();
       }
       btn_play.setEnabled(true);
       btn_pause.setEnabled(false);
       btn_stop.setEnabled(false);
       seekBar.setProgress(0);
}


private void pauseAudio()
{
       if(mediaPlayer!=null)
       {
              mediaPlayer.pause();
       }
       btn_play.setEnabled(true);
       btn_pause.setEnabled(false);
}


private void playAudio()
{
       if(mediaPlayer!=null)
       {
              mediaPlayer.start();
       }            
       btn_play.setEnabled(false);
       btn_pause.setEnabled(true);
       btn_stop.setEnabled(true);
}






    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        super.onPause();
        db.updateContact(dastan);
        db.close();
    }


    @Override
    protected void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        db.open();
    }


}




اين کد اکتيويتي من ، تکست ويو ها رو مطالبشونو از ديتابيس برمي داره و من مجبورم براي اين که لينک فايل mp3 رو بدم از اون کد استفاده کنم 

مي تونم يه ستون در ديتابس اظافه کنم و آدرس تمام فايل ها روي سرور رو داخلش وارد کنم و از رو اون بخونمه؟

البته اين کد رو از نت پيدا کردم ولي نمي دونم جواب مي ده يا نه :

کد:
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.
setDataSource(streamingURL);
mediaPlayer.prepare();
mediaPlayer.start();
 

 
پاسخ

دریافت آدرس فایل صوتی از دیتابس جهت پخش آن

#2
کسی نظری نداره؟
پاسخ

دریافت آدرس فایل صوتی از دیتابس جهت پخش آن

#3
منظورتون رو دقیق بگید.مثلا این قسمت کد آخری که گذاشتید با کدی که در ابتدای موضوع گذاشتید چه فرقی میکنه؟.جفتش یه کار رو میکنه.

نقل قول:مي تونم يه ستون در ديتابس اظافه کنم و آدرس تمام فايل ها روي سرور رو داخلش وارد کنم و از رو اون بخونمه؟

خب میتونید کل آدرسها رو به صورت رشته بخوابونید توی یک ستون از دیتبایس و بعد از اونا استفاده کنید.
واسه استفاده هم، از دیتابیس رشته مورد نظر رو بگیرید  و داخل متغیر زیر بخوابونید و استفاده کنید.

کد:
String URL;
پاسخ
 سپاس شده توسط admin

دریافت آدرس فایل صوتی از دیتابس جهت پخش آن

#4
این دو تا یک عمل رو انجام میدن ؟
کد پی‌اچ‌پی:
mediaPlayer.setDataSource(URL); 
و 
کد پی‌اچ‌پی:
setDataSource(streamingURL); 

فرق این دو رو می خوام 
در اون موردی که فرمودید یه مقدار روشن تر عنوان می کنید 
ممنون
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان