2017-09-22 28 views
1

私はURLから音楽を再生するXamarin.Formsアプリケーションをビルドします。Xamarin.FormsのURLから音楽を再生するには?

各プラットフォームの実装に依存サービスを使用しました。

[assembly: Dependency(typeof(AudioSerivce))]

namespace xxx.Droid {

public class AudioSerivce : IAudio 
{ 
    int clicks = 0; 
    MediaPlayer player; 

    public AudioSerivce() 
    { 
    } 

    public bool Play_Pause (string url) 
    { 
     if (clicks == 0) { 
      this.player = new MediaPlayer(); 
      this.player.SetDataSource(url); 
      this.player.SetAudioStreamType(Stream.Music); 
      this.player.PrepareAsync(); 
      this.player.Prepared += (sender, args) => 
      { 
       this.player.Start(); 
      }; 
      clicks++; 
     } else if (clicks % 2 != 0) { 
      this.player.Pause(); 
      clicks++; 

     } else { 
      this.player.Start(); 
      clicks++; 
     } 

     return true; 
    } 

    public bool Stop (bool val) 
    { 
     this.player.Stop(); 
     clicks = 0; 
     return true; 
    } 
} 

}

と私はログを確認した場合、それが今まで思わ

DependencyService.Get<IAudio>().Play_Pause("https://www.searchgurbani.com/audio/sggs/1.mp3");

それを呼び出しますythingは大丈夫です。 しかし、アンドロイドの電話では音が聞こえません。 誰かが何か提案がある場合は、私に知らせてください。 おかげから

+0

MediaManagerプラグインを使用します。https://github.com/martijn00/XamarinMediaManager – Jason

+0

@Jason このプラグインを使用すると、iOSで動作しますが、Androidでエラーが発生します。 'クライアント側でファイルを開くことができませんでした。サーバー側の試行:java.io.FileNotFoundException:コンテンツプロバイダなし:https:// www.searchgurbani.com/audio/sggs/1.mp3' – Jakob

答えて

0

:私はオクタンビデオプレーヤーとAndroidのエミュレータ間の非互換性に関連する問題があるかもしれないことを疑う

https://forums.xamarin.com/discussion/64218/no-video-player-really

、あなたはエミュレータ/シミュレータを使用していますか?

また別の提案は、この権限を追加することです:

INTERNET WRITE_EXTERNAL_STORAGE READ_EXTERNAL_STORAGE

あなたのAndroidアプリへ。

他のURLを使用して他のURLと連携しているかどうか比較してみてください。

関連する問題