FC2BBS


生放送のものです - ともや2020/06/06 (Sat) 20:12:57
SoundPlayer splayer = new SoundPlayer(@"D:\ミュージック\1.mp3");
splayer.Play();
Re: 生放送のものです - ともや
2020/06/06 (Sat) 20:14:06
using.Media;
も追加しました
Re: 生放送のものです - 黒味ポロ
2020/06/06 (Sat) 20:17:05
これで音楽が再生できないってことですか?
途中から参加したので詳しいことがわからないです。ざっくり説明していただけると助かります
Re: 生放送のものです - ともや
2020/06/06 (Sat) 20:19:17
1という名前のmp3ファイルを流したくて、このコードを打ったのですが、音源が再生できないという状況です。
Re: 生放送のものです - 黒味ポロ
2020/06/06 (Sat) 20:22:18
僕自身、SoundPlayerを使ったことがないので詳しいことはわかりませんが、少し調べてみますね。5分くらい時間ください
Re: 生放送のものです - ともや
2020/06/06 (Sat) 20:24:05
すみません、お願いします。
Re: 生放送のものです - 黒味ポロ
2020/06/06 (Sat) 20:31:41
僕はMediaPlayerというものを使いました。SoundPlayerについては先ほどライブでやらかした通りよくわかりません。
MediaPlayer mp = new MediaPlayer( @"D:\ミュージック\1.mp3" );
mp.Volume = 0.2(double型);
mp.Open( Uri型(自分で調べて!) );
mp.Play();
こんな感じでかけばたぶんできます。
OpenやVolumeは設定しなくても再生できるかもしれませんが詳しくはわかりません。すみません。
Re: 生放送のものです - ともや
2020/06/06 (Sat) 20:45:58
using ~~
みたいなやつ何か追加しますか?

Re: 生放送のものです - 黒味ポロ
2020/06/06 (Sat) 20:47:52
using System.Windows.Media;
でお願いします。
using Media;
は必要ないです
Re: 生放送のものです - ともや
2020/06/06 (Sat) 20:49:17
MediaPlayer mp = new MediaPlayer( @"D:\ミュージック\1.mp3" );
mp.Play();
と書きました
Re: 生放送のものです - ともや
2020/06/06 (Sat) 20:50:57
こう書きました。
醜いと思います、すみません。
お願いいたします。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
MediaPlayer mp = new MediaPlayer(@"D:\ミュージック\1.mp3");
mp.Play();

}
}
}
Re: 生放送のものです - 黒味ポロ
2020/06/06 (Sat) 21:33:02
すみません。今見ました。そのソースで成功しましたか?見ただけではともやさんの思うように行ったかはわからないので、とりあえず実行してみてください。
Re: 生放送のものです - ともや
2020/06/06 (Sat) 21:57:26
言葉足らずですみません、実行してみたところ、ビルドエラーが発生してしましました。
Re: 生放送のものです - ともや
2020/06/06 (Sat) 22:07:13
using System.Windows.Media;
のMediaのところと、

MediaPlayer mp = new MediaPlayer(@"D:\ミュージック\1.mp3");
mp.Play();
のMediaPlayer2か所の下に赤井波線が引かれていて、そこにカーソルを合わせると、型または名前空間の名前
'MediaPlayer'が見つかりませんでした(usingディレクティブまたはアセンブリ参照が指定されていることを確認してください)。
と書かれています。 どうすればよいでしょうか?
Re: 生放送のものです - 黒味ポロ
2020/06/07 (Sun) 08:53:39
今見ました。遅くなってすみません。そして説明不足ですみませんでした。
dll参照が必要になります。参照方法は僕自身あまりVisualStudioを使ったことがないのでわかりませんが、調べればそれなりに出てくるはずなので調べてみてください。
必要なdllは
PresentationCore.dll
というものです。場所は、
C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\WindowsBase.dll
にあると思いますが、v4.0.30319という部分はお使いのWindowsのバージョン次第で変わってきます。このdllを参照してコンパイルすれば通ると思います
Re: 生放送のものです - ともや
2020/06/07 (Sun) 11:32:28
夜に送ってしまったので、すみません。
今、追加して、using System.Windows.Media;のMediaの下の赤い波線は消えました。
しかし、InitializeComponentとnew MediaPlayerのMesiaPlayer とPlayのところにまだ赤井波線があるままです。
どうすればよいでしょうか。

Re: 生放送のものです - 黒味ポロ
2020/06/07 (Sun) 20:20:27
すみません。僕の送ったサンプルが間違えていました。
MediaPlayer mp = new MediaPlayer();
mp.Open( new Uri( "そのファイルのパス" ) );
とやります。それからPlay()してください。
Re: 生放送のものです - ともや
2020/06/07 (Sun) 22:50:53
InitializeComponentとOpenとPlayに波線がついてしまいます。
Re: 生放送のものです - 黒味ポロ
2020/06/09 (Tue) 06:45:33
見るの遅れました。いつもごめんなさい。
InitializeComponentに関しては僕が使ったとこがないのでよくわかりませんが、軽く調べてみたところ、
System.Windows.Markup
という名前空間に存在しているようです。なので、
using System.Windows.Markup;
と最初に書いておきましょう。
OpenとPlayに関してはソースを見てみないと何とも言えないです。アップローダーか何かを使って送っていただければ拝見します!このサイトだとほかの人にも見られてしまう可能性があるので、もしそれがいやだったらまたお声掛けください。

追記:2020/06/09 6:47
InitializeComponentに関してですが、usingディレクティブを追加するだけでなく、
System.Xaml.dll
というdllの参照が必要なようです。そちらの参照もお願いします。そのdllがどこにあるのかのパスはわかりませんのでそこは自分で調べてみてください。もし見つけられなかったら僕もお手伝いさせていただきますのでまたお声掛けください。
Re: 生放送のものです - ともや
2020/06/09 (Tue) 21:36:31
返信遅れました、すみません。
using ・・・を書き、dllファイルを追加しましたが、波線は消えませんでした。
アップローダーはよくわからないので、今まで通りここで送らせてもらってもよいでしょうか?
Re: 生放送のものです - 黒味ポロ
2020/06/10 (Wed) 12:45:35
わかりました。そういうことでしたら個々のサイトで大丈夫です。ただ、僕も学校があって見れる時間帯が少ないので話が進むのがゆっくりになってしまうと思います。
そして波線(エラー)についてですが、Playなどに関しては一度このサイトのコメントとしてでいいので、ソースを見せていただきたいです。
もう一つのほうは僕にはわかりませんが、農神トールさんのアドバイスをもとにコメントアウトしてみてリビルドしてみてください。
Re: 生放送のものです - ともや
2020/06/10 (Wed) 18:39:57
すみません、playのソースを見せるという意味が理解できないのですが、
MediaPlayer mp = new MediaPlayer();
mp.Open(new Uri(@"D:\ミュージック\1.mp3"));
mp.Play();

これでよいでしょうか?
Re: 生放送のものです - 黒味ポロ
2020/06/10 (Wed) 21:07:06
usingディレクティブを含めたソースコード全体を送っていただきたいです。そして、波線が出る部分を、「$」など、他と混ざらない記号で囲っていただけるとわかりやすくていいです。
(m.Play()のm.Play()に波線が出るなら$m.Play()$
m.Play()のPlayのみに波線が出るならm.$Play$()って感じです。逆にややこしくてわかりにくいかもですがお願いします)
Re: 生放送のものです - ともや
2020/06/11 (Thu) 20:56:36

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;


namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
/InitializeComponent/();
}

private void Form1_Load(object sender, EventArgs e)
{
MediaPlayer mp = new MediaPlayer();
mp.Open(new Uri(@"D:\ミュージック\1.mp3"));
mp.Play();

}
}
}

/のところに波線が引かれてしまいます。
現在のコンテキストに'InitializeComponent'という名前は存在しません。
というエラー内容です。


Re: 生放送のものです - 農神トール
2020/06/11 (Thu) 21:21:00
ともやさん。
済みません。黒神さんではありませんが、教えて下さい。
えっと、そのコードを記述する時、WindowsformForm App(.NET Framework)のプロジェクトを選択してコーディングしてますよね?
WPF App(.NET Framework)じゃないですよね?
Re: 生放送のものです - ともや
2020/06/11 (Thu) 21:49:18
ソリューションのところにWindowsFormsAppと書かれているので、おそらく大丈夫だと思います。
Re: 生放送のものです - 農神トール
2020/06/11 (Thu) 21:52:31
initializeComponentをコメントアウトして、リビルドはしてますよね?
Re: 生放送のものです - 農神トール
2020/06/11 (Thu) 22:36:11
ともやさん。
すみません。明日、早いので落ちます。
明日、18時30分以降でしたら家にいますので、私もお手伝いさせてください。
その時間以降は、この掲示板を覗いています。
1.念のため、リビルドした時につけたコメントアウトを改めて外して、再ビルド(▶開始)をやってみてください。
2.それもダメなら、Form.Designer.cs(自動で作成されるもの)を弄ってないですか?削除してるとか?
まず、これが思いつくんですよね。
Re: 生放送のものです - 農神トール
2020/06/12 (Fri) 21:43:04
落ちます
Re: 生放送のものです - ともや
2020/06/13 (Sat) 12:29:10
すみません。返信遅れました。リビルドはして、そのあとにコメントアウトをはずして実行してみたんですけど、うまくいきませんでした。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 12:31:31
黒神ポロさん、農神トールさん、ありがとうございました。
とても勉強になりました。
後は自分で頑張ります!
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 12:43:33
Form.Designer.cs(自動で作成されるもの)もあるんですよね?
Re: 生放送のものです - ともや
2020/06/13 (Sat) 16:19:38
using ...... のところにでしょうか??
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 16:31:56
ああ、よかった。まだ見てくれてたんですね。
えっと、program.csとか、2019バージョンなら、form[デザイン].csというタブが、メインウインドウにないですか?
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 16:56:53
すみません。ちょつと記述が間違ってました。
2019バージョンなら、Form.cs[デザイン]だったと思いますprogram.csは無視してください。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:25:06
あります!
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:25:57
今日はまだ時間はありますか?
私は夜9時ごろまでは大丈夫ですけど。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:32:31
すみません、とても言い出しにくいのですが、今学生なのですが、最近まで先生に聞いても、学校でvisual studioをインストールできなくて解決しなかったんですけど、昨日インストールができて、そこで先生に教えてもらったコードを打ったら、エラーがなくなりました。
ここまで教えていただいたのに、すみません。
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:34:29
了解です。
因みに、どんなコードが足りなかったんですか?
参考までに。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:35:42
しかし、エラーはなくなったのですが、なぜか音源が再生されません。

using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Media;


namespace WindowsFormsApp4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private readonly dynamic _wmp = Activator.CreateInstance(Type.GetTypeFromProgID("WMPlayer.OCX.7"));
private dynamic _wmp_v = Activator.CreateInstance(Type.GetTypeFromProgID("WMPlayer.OCX.7"));
private int playflag;
private int volumeflg;


private void Form1_Load(object sender, EventArgs e)
{

if (_wmp.Settings.mute == true)
{
_wmp.settings.mute = false;

}
else
{
_wmp.settings.mute = true;


}
}
private void Form2_Load(object sender, EventArgs e)
{
if (playflag == 0)
{
_wmp.controls.Play();
playflag = 1;
}
else
{
_wmp.controls.Pause();
playflag = 0;
}

}

private void Form3_Load(object sender, EventArgs e)
{
_wmp.URL = "D:\\ミュージック\\1.mp3";

playflag = 1;
volumeflg = 1;
}

}

}

デザインのところにボタンは追加しました。

なぜでしょうか?

(先生はこれでおんげんがさいせいできたらしいです。)
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:37:09
足りないというか、先生が考えてきてくれたので、まるっきり違う形だと思います。

Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:40:06
"D:\\ミュージック\\1.mp3"
は、ともやさんの再生したい音源のパスなんですよね?
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:44:54
自分の音源が置いてあるファイルのパスです
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:46:03
その音源は、プログラムが置いてあるフォルダにあるんですよね?
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:48:52
プログラムが置いてあるフォルダというのは、
visual studioのこのコードが書いてある
ファイルのフォルダということでしょうか?
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:50:59
そうです。visual studioのこのコードが書いてある
ファイルのフォルダです。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:53:49
フォルダはミュージックのフォルダに入っています。
今ソリューションエクスプローラーに1.mp3をコピーして貼り付けてみて、実行してみたら、できなくて、
フォルダに直接貼り付けて実行してもできませんで知った。
1.mp3をプログラムが置いてあるフォルダに入れて、パスもそこにせっていするのですか?
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:54:50
私がいつもやってる方法を書きます。
ちょっと時間ください。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 17:57:02
わかりました。
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 17:59:31
目的の音源のフォルダを開く
→目的のファイルを選択→上の「ホーム」に移動して、パスのコピーをクリック
→_wmp.URL = "ここにペースト";

ダブルクオーテーションに注意してください。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 18:02:36
ぼくも同じようにやっています!
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 18:04:56
うーん。
そうなると、プログラムが書いてあるフォルダに入れて、パスもそこにしてみますか?
Re: 生放送のものです - ともや
2020/06/13 (Sat) 18:06:17
あ、違いました。僕はパスが書いてあるところの空白のところを右クリックしてコピーしてました。
それだと音源ファイルの名前はコピーされないので、
農神トールさんのほうが良いですね!
有難うございました!
Re: 生放送のものです - ともや
2020/06/13 (Sat) 18:32:32
プログラムが書いてあるフォルダに音源ファイルを入れて、パスもそこにする。

プログラムが書いてあるフォルダに音源ファイルを入れて、パスはミュージックにあるファイルのパスを入れる。

ソリューションエクスプローラーに張り付ける、
というような組み合わせを試したんですが、できませんでした。
おそらく、パスは問題なく、ほかに問題があるのかと思います。
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 18:35:51
結局、お力になれず申し訳ありませんでした。
学校でVSがインストールされたのであれば、先生に相談するのが確実ですね。やっぱり、画面を見ながら説明ができるというのが一番の武器ですから。
そして、学校の先生のソースですが、私は完全に理解は出来てません。WindowsMediaPlayerで再生させるために、いろいろ設定されているようですが、そこは?です。
私は、メモ帳とcscで作ってましたので、前の投稿に書いたコードで再生させるのが精いっぱいですね。
では、良い、プログラムライフを。
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 18:39:35
あれ、投稿が前後してしまった。
再生できない?
うーん。私も、先生のコードが完全に読めれば良いんですけど。WindowsMediaPlayerを使う場合、別のdllも参照するんですよね?
ごめんなさい。
Re: 生放送のものです - ともや
2020/06/13 (Sat) 18:50:06
dllは参照するものは参照したはずだと思います。

いえいえ、とっても勉強になりました。

もっと上達していろんなもの作って帰ってきます!
その時に作ったものを見せたいので、黒神ポロさん、農神トールさん、名前を変えないでいてくださいね!
またきます!

改めて、黒神ポロさん、農神トールさん、本当にありがとうございました!
Re: 生放送のものです - 農神トール
2020/06/13 (Sat) 18:59:30
いや、ともやさんにしろ、黒神さんにしろ、若いって良いですね。
気力が漲ってるというか。じじいの私には羨ましい。
私も、学生時分にプログラミングを覚えていたら、少しは違う人生を歩んでたのかな。
最近、JavaScriptに浮気してたので、もう一回、真面目にC#をやってみようかな(笑)。

ともやさん、ファイトです。
Re: 生放送のものです - 農神トール
2020/06/14 (Sun) 07:45:59
ともやさん。
もう、見てないですかね?
音源が再生されないという不具合ですが、パスの¥マークを/(バックスラッシュ)に変えてみてもダメですか?
貼り付けてもらったソースを省略して作ったものを私の環境で試してみましたが、それなら再生できました。
Re: 生放送のものです - 黒味ポロ
2020/06/14 (Sun) 08:19:43
見てない間に完結してた!
お力になれず、すみませんでした。先生のソースは僕にはよくわかりませんでした。なので、農神トールさんが言っている\を/にするのをやってみてもらって、それでもだめなら、やはり先生本人に聞くのが一番かもしれないですね。
わかりました!名前変えずに待ってます!!頑張ってください!!僕も頑張ります!
Re: 生放送のものです - ともや
2020/06/14 (Sun) 08:39:59
再生されませんでした。あとは先生に頼りたいと思います!
Re: 生放送のものです - 黒味ポロ
2020/06/14 (Sun) 17:12:51
わかりました!お力になれずすみませんでした。色々なものを作って、それを見せていただける日を楽しみにしています!!これからもお互い頑張っていきましょう!!(問題を解決できなかったのになんか偉そうなこと言ってごめんなさい)
Re: 生放送のものです - 農神トール
2020/06/14 (Sun) 18:46:18
黒神さん、ちょっと私の環境で動いたファイルを試してもらって良いですか?
多分、黒神さんもVSは使ってないと思いますので。
以下のコードをメモ帳にコピペ。拡張子csで保存。コマンドプロンプトでコンパイル。
参照等は一切なしです。
私の環境では、これでフォームとボタンが表示され、プレイボタンを押すと再生されます。
************************************************************************************

using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

class Wmp : Form
{
Wmp()
{
//ボタン関連
Button button1 = new Button();
button1.Text = "PLAY";
Controls.Add( button1 );
button1.Click += new EventHandler( btn1_Click );
}

private readonly dynamic _wmp = Activator.CreateInstance(Type.GetTypeFromProgID("WMPlayer.OCX.7"));

private void btn1_Click( object Sender, EventArgs e )
{
//@等は付けない。単純にダブルクーテーションで囲う。
//例:"C:/.../.../..../〇〇.mp3";
_wmp.URL = "音源のパス";
_wmp.controls.play ();
}

[STAThread]
static void Main()
{
Wmp tf = new Wmp();
Application.Run( tf );
}
}
Re: 生放送のものです - 黒味ポロ
2020/06/14 (Sun) 21:17:33
音楽なりました!再生できました!!
Re: 生放送のものです - 農神トール
2020/06/14 (Sun) 21:22:18
黒神さん。
ありがとうございます。
再生できてるということは、何だろう?他に変なところがあるのか?
多分、黒神さんなら、こっちのソースコードの方が分かり易かなと思ったんですよ。
Re: 生放送のものです - 農神トール
2020/06/14 (Sun) 21:45:33
え?、「いまさら」って言われるかもしれませんが、
今、改めて貼り付けてもらったソースを見てたんですけど、private void Form〇_Load(object sender, EventArgs e)が3つあるんですよね。

で、ボタンは作ったって記述があるので、これ、正しくはボタンクリックのイベントじゃないのかな?
フォーム1がロードされるとき、フォーム2がロードされるとき、フォーム3がロードされる時に、ミュートやプレイというのも何か違和感が・・・。
Re: 生放送のものです - 農神トール
2020/06/14 (Sun) 22:30:53
private void Form1_Load(object sender, EventArgs e)は無くてもいいような。

で、private void Form3_Load(object sender, EventArgs e)をprivate void Form1_Load(object sender, EventArgs e)
にして、playflag = 0にする。

private void Form2_Load(object sender, EventArgs e)が、クリックイベントで、private void btn1_click(object sender, EventArgs e)
if (playflag == 0)なので再生されて、playflag =1にする。
もし、再び、btn1がクリックされたら、if (playflag == 0)が偽になるので、ポーズが発動する。
で、playflag =0にする。
これで、一つのボタンクリックで再生とポーズをコントロールかな。

これでいけるような気がするんだが、違うかな?
Re: 生放送のものです - 農神トール
2020/06/15 (Mon) 00:48:30
先生のコードを併用して組み上げたらこうなった。

ともやさん。黒神さん。ごめんなさい。今回は、私の完全な思い込みでした。
1.学校の先生が書いたコードという事で、その時点で間違いないと思ってしまった事。
2.学校と家で違うところは?音源のパス設定だろうと短絡的に思ってしまい、そこにしか目が行かなかった。
思い込みって怖いなと思います。これで、私の環境で読み込み、playボタンで再生とポーズ切り替えできました。
**************************************************************************************************************
using System;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

class Wmp : Form
{
Wmp()
{
//ボタン関連
Button button1 = new Button();
button1.Text = "PLAY";
Controls.Add( button1 );
button1.Click += new EventHandler( btn1_Click );

//フォーム関連
this.Load += new EventHandler( Wmp_Load );
}

private readonly dynamic _wmp = Activator.CreateInstance(Type.GetTypeFromProgID("WMPlayer.OCX.7"));
private int playflag;

private void Wmp_Load(object sender, EventArgs e)
{
_wmp.URL = "C:/...../...../...../〇〇.mp3";
_wmp.controls.Stop(); //ロードされた時点で再生されてしまうので、強引だが、強制停止
playflag = 0;
}

private void btn1_Click( object Sender, EventArgs e )
{
if (playflag == 0)
{
_wmp.controls.Play();
playflag = 1;
}else
{
_wmp.controls.Pause();
playflag = 0;
}
}

[STAThread]
static void Main()
{
Wmp tf = new Wmp();
Application.Run( tf );
}
}
Re: 生放送のものです - 黒味ポロ
2020/06/16 (Tue) 06:21:02
なるほど。そういうことだったんですね!僕もてっきり先生が書いたのだからミスはないと思ってました。思い込みって怖い....

ともやさんが今も見てくれているかは分かりませんが、農神トールさんが原因をみつけてくださいました!僕もやっとこのソース理解できたので、もしこれでもできなかったときは多少お手伝いできるかな?と思います。(多分上のソースでできると思うけど..)
Re: 生放送のものです - 農神トール
2020/06/16 (Tue) 06:52:12
ともやさん。黒神さん。
ごめんなさい。一つ付け加えます。

あくまでも、私のプログラミング環境は、メモ帳+csc.exeです。visual studioではありません。
visual studio側の設定等の可能性は否定できませんし、先生が記述されたコードを否定するわけでもありません。「プロジェクト全体」のソースコードがわからないので。
なので、こういうソースコードでも動作するという程度でお考え下さい。

わたしも、この掲示板は毎日覗いていますよー。黒神さん。管理大変でしょうが、頑張ってください。
名前:  件名:  パスワード:
メッセージ: