2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Xamarin.AndroidでAndroid.Media.MediaplayerでStreamingを流す方法

Last updated at Posted at 2013-12-09

Xamarin.AndroidでAndroid.Media.MediaplayerでStreamingを流す方法についてです。
markdown記法の練習として書いてます。

手順としては

  • usingディレクティブにAndroid.Mediaを定義
  • MediaPlayerで再生、停止の処理を指定

と至って簡単です。

再生については、まず準備として
Android.Media.MediaPlayerで

SetAudioStreamType(Stream.Music);
SetDataSource(Uri.EscapeUriString(Mediaurl));

とAudioStreamTypeをStream.Musicにして、DataSourceにエスケープしたstreamingのURIを設定します。
そしてPrepareAsync()として非同期に準備します。

再生する際は、準備出来たらStart()してあげればいいようです。
停止については、Stop()して、Reset()してあげればいいようです。
なお、Reset()を忘れるとエラーが出ました。

まとめると以下のようになります。(PlayButton,StopButtonというButtonを使用しています)

~略
using Android.Media;
~略			
MediaPlayer Mp = new MediaPlayer ();
string Mediaurl = "streamingのURI"

//Playbuttonの処理
PlayButton.Click += (object sender, EventArgs e) => {
	if (Mp.IsPlaying || Mediaurl == string.Empty) {
		return;
	}

	Mp.SetAudioStreamType(Stream.Music);
	Mp.SetDataSource(Uri.EscapeUriString(Mediaurl));
	Mp.PrepareAsync();
};

//stopbuttonの処理
StopButton.Click += (object sender, EventArgs e) => {
	if (Mp.IsPlaying) {
		Mp.Stop ();
		Mp.Reset ();
	}
};

Mp.Prepared += (object sender, EventArgs e) =>{
	Mp.Start();
};
~略

###なんだよ中華タブレット
実はメインでデバッグに使用している中華タブレットで上記のコードでは再生できず、他のエミュレータやSony Tablet Pでは再生されるという現象が発生しました。カスタムファームを使っているからかもしれません。
ただ、

でも同様現象が起こっているようです。
記載されているshoutcastでの回避方法を取るとshoutcastのみなら再生出来ました。

一体何なんだろう。

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?